k8s之ingress-nginx-controller安装

ops/2024/12/21 4:20:38/

作者:程序那点事儿 日期: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 # 再次查看


http://www.ppmy.cn/ops/124056.html

相关文章

传智杯 第六届—C

题目描述: 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如:第一个字符串是"They are students.",第二个字符串是”aeiou"。删除之后的第一个字符串变成"Thy r stdnts."。保证两个字符…

诺奖争议升级:Nature杂志揭露提名黑幕,Jürgen公开反对Hinton获诺贝尔奖!

来源 | 机器之心 今年的诺贝尔物理学奖颁给了两位享誉盛名的 AI 研究者 John J. Hopfield 和 Geoffrey E. Hinton,这确实让很多人感到意外。 第一层疑问是:Hinton 和物理学有什么关系吗? 第二层疑问是:AI 科学家是如何提名物理…

RCE_绕过综合

<aside> &#x1f4a1; 管道符 </aside> <aside> &#x1f4a1; 通配符绕过 </aside> **匹配任何字符串&#xff0f;文本&#xff0c;包括空字符串&#xff1b;*代表任意字符&#xff08;0个或多个&#xff09;? 匹配任何一个字符&#xff08;不…

【Python】数据可视化之聚类图

目录 clustermap 主要参数 参考实现 clustermap sns.clustermap是Seaborn库中用于创建聚类热图的函数&#xff0c;该函数能够将数据集中的样本按照相似性进行聚类&#xff0c;并将聚类结果以矩阵的形式展示出来。 sns.clustermap主要用于绘制聚类热图&#xff0c;该热图通…

昇思MindSpore进阶教程--单节点数据缓存(中)

大家好&#xff0c;我是刘明&#xff0c;明志科技创始人&#xff0c;华为昇思MindSpore布道师。 技术上主攻前端开发、鸿蒙开发和AI算法研究。 努力为大家带来持续的技术分享&#xff0c;如果你也喜欢我的文章&#xff0c;就点个关注吧 缓存共享 对于单机多卡的分布式训练的场…

重学Java设计模式读后感之组合设计模式应用

平衡二叉树 平衡二叉树 平衡二叉树&#xff08;Balanced Binary Tree&#xff09;: 通常指的是AVL树或红黑树这类自平衡二叉搜索树。这里我将向你展示如何用Java实现一个简单的AVL树&#xff0c;包括插入节点并自动保持平衡的操作。 AVL树简介 AVL树是一种自平衡的二叉搜索…

C#中Assembly3个获取路径的方法

在C#中&#xff0c;经常要获取路径 &#xff0c;可以通过Assembly的三个重载方法来获取&#xff0c;如下所示这三个分别是GetCallingAssembly、GetEntryAssembly和GetExecutingAssembly。 string tmpEntryPath Assembly.GetEntryAssembly().Location;string tmpExeasmPath As…