K8S 安装 Ingress Controller

版本介绍

版本1:NGINX Ingress Controller(nginx公司的nginx-ingress)

NGINX Ingress Controller 由 F5 NGINX 开发和维护(docs.nginx.com),可在 GitHub的 nginxinc/kubernetes-ingress 代码库中找到

版本2:Ingress NGINX Controller(k8s社区的ingres-nginx)

以 NGINX 开源技术为基础(kubernetes.io),可在GitHub的 kubernetes/ingress-nginx 代码库中找到,由 Kubernetes 社区维护,并且 F5 NGINX 承诺帮助管理该项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装(Ingress NGINX Controller)

Ingress NGINX Controller 是 Kubernetes 的入口控制器,使用NGINX作为反向代理和负载均衡器

官网地址
在这里插入图片描述

方式1:通过YAML安装

# 在线安装,需要梯子,否则不会成功
kubectl apply -f 
https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.7.0/deploy/static/provider/cloud/deploy.yaml
# 下载文件到本地,并修改镜像地址,本地安装
curl https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.7.0/deploy/static/provider/cloud/deploy.yaml -o /home/lixing/demo/ingress-nginx.yaml

注意:这个我们参考一个三方的个人博客:【https://github.com/anjia0532/gcr.io_mirror,DockerHub地址:https://hub.docker.com/u/anjia0532】,大体思路就是通过梯子拉取官方镜像,重新改名后上传到DockerHub上

编辑YAML文件

  • 指定三方镜像地址
修改 image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:xxxx 为 image: docker.io/anjia0532/google-containers.ingress-nginx.kube-webhook-certgen:v20230312-helm-chart-4.5.2-28-g66a760794
#
修改 image: registry.k8s.io/ingress-nginx/controller:v1.7.0@sha256:xxxx 为 image: docker.io/anjia0532/google-containers.ingress-nginx.controller:v1.7.0
  • 指定 Ingress Nginx Controller 到固定节点运行(指定node1为边缘节点)
# 给 Node1 节点打标签
kubectl label nodes node1 IngressController=IngressNginx --overwrite
# 
通过 nodeSelector 指定 ingress-nginx-admission-create 到 Node1 节点
通过 nodeSelector 指定 ingress-nginx-admission-patch 到 Node1 节点
通过 nodeSelector 指定 ingress-nginx-controller 到 Node1 节点

模式1、Deployment + NodePort 的 Service 模式

# Ingress NGINX Controller 本身也是一个Service 服务,这里设置该服务对外的暴露类型为NodePort
修改 Service.ingress-nginx-controller的type为NodePort,默认为LoadBalancer
# 自定义Service在node节点暴露的端口
Service.ingress-nginx-controller的ports下分别新增 nodePort: 32766 和  nodePort: 32767

模式2、Deployment + LoadBalancer 的 Service 模式

模式3、DaemonSet + HostNetwork + nodeSelector 的 Service 模式

修改 Service.ingress-nginx-controller的spec.type为ClusterIP
注释 Service.ingress-nginx-controller的spec.externalTrafficPolicy
Deployment.ingress-nginx-controller的spec.template.spec下新增hostNetwork: true
修改 Deployment.ingress-nginx-controller的kind为DaemonSet

本地YAML安装

kubectl apply -f IngressController-Nginx.yaml # 安装
kubectl delete -f IngressController-Nginx.yaml # 卸载

查询 ingress-nginx 命名空间下的资源

kubectl get deployment,replicaSet,pods,service,ingress -n ingress-nginx -o wide
kubectl describe pod -n ingress-nginx podName
kubectl logs -n ingress-nginx podName

检查相关Pod运行状态

kubectl wait --namespace ingress-nginx \
  --for=condition=ready pod \
  --selector=app.kubernetes.io/component=controller \
  --timeout=120s
  # 显示效果:pod/ingress-nginx-controller-5b955cb6c5-9bvcg condition met
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大能嘚吧嘚

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

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

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

打赏作者

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

抵扣说明:

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

余额充值