kubernetes部署ingress-nginx
kubernetes1.23.x部署ingress-nginx
版本说明
kubernetes: 1.23.5
ingress-nginx: controller-v1.1.1
官方yaml文件下载地址
https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.1/deploy/static/provider/cloud/deploy.yaml
修改-镜像:
查看用了哪些镜像
cat deploy.yaml |grep image
替换镜像
如上图,注释的为官方镜像地址,未注释的image为替换后的国内镜像地址
image: registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.1.1
image: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1
最好先测试下镜像是否能拉下来
修改-端口映射:
修改名为ingress-nginx-controller的service中的如下部分
type: NodePort
nodePort: 30080
nodePort: 30443
这样就将容器的80/443端口,暴露到主机的30080/30443
注意k8s默认的使用端口范围是30000-3xxxx,设置范围外的端口还需要修改配置文件
修改-pod数量:
修改名为ingress-nginx-controller的Deployment,添加如下
replicas: 3
如果想让pod在指定的机器上运行,先给节点打上标签,然后再修改如下部分
#我打的标签是 node/type: master
创建
kubectl apply -f deploy.yaml
查看pod
如下图三个pod已启动并运行
测试
使用curl或者浏览器测试
注意!!!
测试发现集群所有节点均已运行了30080/30443端口
只有运行了ingress pod的节点才能访问通