下载安装文件
首先,需要匹配Ingress-nginx版本和kubernetes版本。 在https://github.com/kubernetes/ingress-nginx可以找到,如下图所示:
这里一定要选择kubernetes对应的ingress-nginx版本 要不会报一些奇怪的错误!
博主k8s版本是v1.23.6,选择安装Ingress-nginx的v1.6.3版本,下载如下文件:
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.6.4/deploy/static/provider/cloud/deploy.yaml
修改配置
替换镜像地址
由于国内可能无法访问registry.k8s.io 所以替换以下镜像
ingress-nginx 1个
kube-webhook-certgen 2个
registry.k8s.io/ingress-nginx/controller:v1.6.3@sha256:54f7fe2c6c5a9db9a0ebf1131797109bb7a4d91f56b9b362bde2abd237dd1974
替换成👇
k8s.dockerproxy.com/ingress-nginx/controller:v1.6.3@sha256:54f7fe2c6c5a9db9a0ebf1131797109bb7a4d91f56b9b362bde2abd237dd1974registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.6.3@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
替换成👇
k8s.dockerproxy.com/ingress-nginx/kube-webhook-certgen:v1.6.3@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
其他字段修改
apiVersion: apps/v1
kind: DaemonSet # 这里把 Deployment 改成 DaemonSet
metadata:labels:...name: ingress-nginx-controllernamespace: ingress-nginx
spec:minReadySeconds: 0revisionHistoryLimit: 10selector:matchLabels:app.kubernetes.io/component: controllerapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/name: ingress-nginxtemplate:metadata:labels:app.kubernetes.io/component: controllerapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/name: ingress-nginxspec:hostNetwork: true #这里加一句# 移除 strategynodeSelector: # 可选kubernetes.io/os: linuxhasIngress: "true" # 在存在这个标签的 node 上部署containers:- args:...
DaemonSet:修改 Deployment 为 DaemonSet,移除 strategy 字段;
hostNetwork:使用宿主机的网络;
nodeSelector:添加标签选择器(可选);
将名为 ingress-nginx-controller 的 Service 类型改为 ClusterIP
(要删除 externalTrafficPolicy 字段);
保存配置文件后 提交文件yaml 部署ingress-nginx
kubectl apply -f deploy.yaml
查看结果
[root@k8s-master ingress]# kubectl get pods -n ingress-nginx
NAME READY STATUS RESTARTS AGE
ingress-nginx-admission-create-b7dqr 0/1 Completed 0 2m5s
ingress-nginx-admission-patch-jnqr8 0/1 Completed 0 2m5s
ingress-nginx-controller-f6rln 0/1 Running 0 2m5s
验证ingress-nginx
[root@k8s-node1 ~]# curl http://xx.xx.xx.x
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx</center>
</body>
</html>