1.ingress-controller简介
功能上类似于nginx,但是可以根据服务名进行转发,本文主要介绍的是nginx-ingress-controller,主要包含两个容器,第一个容器用于接收请求,第二个容器用于解析服务名到相应的服务。
2.安装步骤
https://github.com/kubernetes/ingress-nginx/tree/controller-v1.1.0
下载解压后 ingress-nginx-controller-v1.1.0/deploy/static/provider/cloud/deploy.yaml
修改镜像为国内的镜像
执行命令 kubectl apply -f deploy.yaml
过一段时间后执行命令 kubectl get pod -n ingress-nginx
状态为running后,执行 kubectl get svc -n ingress-nginx
其中nodepart的svc对应的ip就是整个 ingress-controller对外服务的ip,将ip输入浏览器,正常应该看到是404,
3.配置ingress
ingress-controller功能上相当于nginx,那么ingress就相当于nginx的一个server配置
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: test-ingress annotations: kubernetes.io/ingress.class: "nginx" spec: rules: - host: test.com http: paths: - path: "/tst" pathType: Prefix backend: service: name: test-service port: number: 80
然后必须配置hosts文件,指定上面提到的nodeport的ip的域名为 test.com,直接访问 ip/tst 仍然是404