(1)创建一个Service
在这里插入图片描述
(2)创建Ingress
创建ingress-service.yaml文件。
kubectl apply -f ingress-service.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-test
spec:
  rules:
  - host: liufeifei.com
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: my-service
            port:
              number: 8080

kubectl get ingress
在这里插入图片描述
在/etc/hosts文件添加:
宿主机IP: liufeifei.com

用liufeifei.com:30001访问
在这里插入图片描述

LoadBalancer的方式访问应用

将test-service修改为LoadBalancer类型,获取到EXTERNAL-IP后,在/etc/hosts文件中添加EXTERNAL-IP liufeifei.com

通过liufeifei.com:8080可以访问到应用服务。
在这里插入图片描述

Ingress控制器构建

Ingress控制器构建
官网给出的方法:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.1/deploy/static/provider/cloud/deploy.yaml
上面这个地址我打不开,我是从其它地方弄到的文档。

kubectl get ingress
查看ingress的构建情况,发现CLASS和ADDRESS为空。
在这里插入图片描述
在这里插入图片描述
MountVolume.SetUp failed for volume “webhook-cert” : secret “ingress-nginx-admission” not found

查看ingress-nginx-controller Pod的构建情况时发现以下错误。
在这里插入图片描述
解决方案:MountVolume.SetUp failed for volume “webhook-cert” : secret “ingress-nginx-admission” not found #5932
我是用以下方案解决的。
在这里插入图片描述
在这里插入图片描述
kubectl logs ingress-nginx-controller-66677fc55f-ptp5r -n ingress-nginx
在这里插入图片描述
添加kubernetes.io/ingress.class: nginx
在这里插入图片描述
在ingressCotroller的yaml文件可以找到ingressClass的值
在这里插入图片描述
遇到503问题:我service的端口是80,但是ingress的yaml文件配置写成5678
解决方案:访问 k8s 中的 nginx-ingress 报错 503 Service Temporarily Unavailable
在这里插入图片描述
端口修改后,可以成功访问。访问方式如下:

创建的ingress的Address,我这里是192.168.93.10
在这里插入图片描述
ingress controller服务的端口,我这里是30866
在这里插入图片描述
ingress.yaml文件的前缀,我这里是/hi
在这里插入图片描述
curl 192.168.93.10:30866/hi
在这里插入图片描述

Logo

开源、云原生的融合云平台

更多推荐