当前位置: 首页 > news >正文

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 # 再次查看

http://www.lryc.cn/news/456994.html

相关文章:

  • 力扣SQL仅数据库(1098~1132)
  • 优惠点餐api接口对接的具体步骤是什么?
  • 【韩顺平Java笔记】第8章:面向对象编程(中级部分)【297-313】
  • 快递批量查询物流追踪只揽收无物流信息的单号
  • 【动态网站资源保存下载】
  • Selenium自动化测试中如何处理数据驱动?
  • 淘宝API接口系列有哪些内容?
  • 华为OD机试 - 冠亚军排名(Java 2024 E卷 100分)
  • VmWare中安装CenterOs(内网服务器)
  • JS 数组去重 — 各类场景适合方法大全
  • 【Java 问题】集合——List
  • xss 跨站脚本攻击
  • 5.toString()、构造方法、垃圾回收、静态变量与静态方法、单例设计模式、内部类
  • Fiddler配合wireshark解密ssl
  • 【UI】将 naive ui 的 message 封装进axios 中,关于naiveui的message相关的用法
  • IC卡批量加密快速写入
  • 软件测试学习笔记丨tcpdump 与 wireshark
  • Redis:分布式 - 哨兵
  • 开源城市运动预约的工具类小程序源码
  • SldWorks问题 2. 矩阵相关接口使用上的失误
  • 2024十月超全大模型常见面试题(附答案)
  • Java 的数据结构整理(整合版)
  • 如何让信息学奥赛学习“边玩边学”?——趣味编程让枯燥学习变得有趣
  • 【艾思科蓝】C++游戏开发探秘:打造高性能游戏世界的钥匙
  • 企业如何做好数据安全防泄密?10个你不知道的防泄密措施
  • MySQL基本操作(1)
  • Python 如何使用 Redis 作为缓存
  • Python知识点:基于Python工具,如何使用Mediapipe进行人体姿态估计
  • 数据结构进阶:二叉搜索树_C++
  • uni-app之旅-day04-商品列表