Kubernetes Ingress Controller = Nginx + Lua + Ingress Controller

安装部署
项目地址:https://github.com/kubernetes/ingress-nginx
安装文档地址: https://github.com/kubernetes/ingress-nginx/blob/nginx-0.30.0/docs/deploy/index.md
- 1 查看ReadME文档

- 2 跳转到相应的帮助文档

- 3 找到Yaml创建方式

PowerShell
# 根据官方手册,下载 Yaml 文件
# 你也可以加上 -O ingress-nginx.yaml 的参数,相当于文件重命名
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.12.0/deploy/static/provider/cloud/deploy.yaml -O ingress-nginx.yaml
# 查看文件
ll -rt
- 4 修改镜像拉取位置
我们学习 Docker 和 K8S,大部分遇到的问题,都是镜像拉取不到导致的失败 因此,把 registry.k8s.io 镜像,替换成 registry.cn-hangzhou.aliyuncs.com 镜像 这里面,总共两个镜像 kube-webhook-certgen:v1.5.0 /ingress-nginx/controller:v1.12.0 修改他们的镜像源
# sed 统一替换,总共改了三处
sed -i 's|registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.5.0.*|registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.5.0|g' ingress-nginx.yaml
sed -i 's|registry.k8s.io/ingress-nginx/controller:v1.12.0.*|registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.12.0|g' ingress-nginx.yaml



- 5 修改配置
423行左右的位置,添加 hostNetwork: true
hostNetwork: true的补充说明:
此参数为true表示pod使用主机网络,也就是pod的IP就是node的IP
若不添加,后续使用 域名:nodeport 访问
添加之后,直接使用域名访问

- 6 为了加快拉取速度,我们先把镜像拉取到本地)
# 拉取 nginx-ingress-controller
ctr -n k8s.io i pull registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.12.0
# 拉取 kube-webhook-certgen
ctr -n k8s.io i pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.5.0
# 查看拉取列表,思考 -E 表示什么
ctr -n k8s.io i ls | grep -E 'ingress|webhook'

- 7 应用配置文件
[root@master1 ~]# kubectl apply -f ingress-nginx.yaml

# 这里介绍一个新命令 get all
kubectl get all -n ingress-nginx
