k8s之ingress-nginx-controller安装

作者:程序那点事儿 日期:2024/01/30 01:25


要在master节点上安装

helm repo add ingress-nginx Welcome - Ingress-Nginx Controller

helm search repo ingress-nginx

helm pull ingress-nginx/ingress-nginx --version 4.4.2

mv ingress-nginx-4.4.2.tgz /opt/k8s/helm

tar -zxvf ingress-nginx-4.4.2.tgz

cd ingress-nginx/

镜像加速,修改如下配置 vim values.yaml

registry.cn-hangzhou.aliyuncs.com

google_containers

开始安装ingress

为ingress单独创建一个命名空间

kubectl create ns ingress-nginx

为node1节点添加一个标签 (master节点有污点,不要加在master节点上)

kubectl label node k8s-node1 ingress=true

标签要与values.yaml文件一致

执行安装命令

helm install ingress-nginx -n ingress-nginx .

查看pod,发现pod没有运行成功

kubectl get po -n ingress-nginx 或 kubectl get all -n ingress-nginx

查看没有运行的原因,ingress-nginx-controller 镜像下载失败

kubectl describe po -n ingress-nginx ingress-nginx-controller-4jpb5

觖决办法:

  • 需要手动拉取镜像(注意,如果是手动拉取,每个节点都要拉取)

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.5.1

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.3.0

  • 一条命令全部删除

kubectl get all -n ingress-nginx

helm -n ingress-nginx delete ingress-nginx

  • 重新创安装

helm install ingress-nginx -n ingress-nginx .

  • 查看po启动失败正常

kubectl get all -n ingress-nginx

kubectl describe po -n ingress-nginx ingress-nginx-controller-67mrn

  • 查看日志,发现是80端口被占用了

kubectl logs -n ingress-nginx ingress-nginx-controller-67mrn

  • 找出占用的80端口的进程号,发现是httpd占用的

netstat -nltp | grep 80

  • 杀掉httpd进程(每个节点都要)

kill -9 1254 # 如果还自启,执行 systemctl stop httpd

systemctl disable httpd # 禁止开机自启

  • 查看http进程消失了

ps -ef | grep httpd

  • 查看pod,还没启动

kubectl get all -n ingress-nginx

  • 删除这个pod(不删除也会自动启动)

kubectl delete po -n ingress-nginx ingress-nginx-controller-67mrn

  • 查看,启动成功

kubectl get po --all-namespaces

ingress-nginx其它问题

  • pod找不到合适的节点布署

kubectl describe po -n ingress-nginx ingress-nginx-controller-56fc676cb-4m8ng

原因可能是安装ingress-nginx没有更新到service、deploy与pod或node1节点的pod没有找到合适的端口,node1与node2的

  1. k8s-node1节点没有找到合适的端口;
  2. 添加在k8s-node2的标签不生效,导致selector没有找到对应的节点;
  3. k8s-master上有污点,布署不到k8s-master上

每个节点重启kubelet,稍等一下就可以了

systemctl restart kubelet # 重启

kubectl get all -n ingress-nginx # 再次查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序那点事儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值