k8s 1.25.2部署 ingress-nginx1.3.1

欢迎大家进群,一起探讨学习

欢迎大家进群,一起讨论学习

微信公众号,每天给大家提供技术干货

在这里插入图片描述

博主技术笔记 https://notes.xiyankt.com


博主开源微服架构前后端分离技术博客项目源码地址,欢迎各位star https://gitee.com/bright-boy/xiyan-blog


版本: k8s 1.25.2部署 ingress-nginx1.3.1

1.下载

wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.3.1/deploy/static/provider/cloud/deploy.yaml

2.处理国内无法下载k8s.io上的镜像

crictl pull  registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.3.1

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

sed -i s#registry.k8s.io/ingress-nginx/controller:v1.3.1@sha256:54f7fe2c6c5a9db9a0ebf1131797109bb7a4d91f56b9b362bde2abd237dd1974#registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.3.1#g deploy.yaml

sed -i s#registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47#registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.3.0#g deploy.yaml

ERRO[0000] unable to determine image API version: rpc error: code = Unavailable desc = connection error: desc = “transport: Error while dialing dial unix /var/run/dockershim.sock: connect: no such file or directory” 错误解决

crictl config runtime-endpoint unix:///run/containerd/containerd.sock
crictl config image-endpoint unix:///run/containerd/containerd.sock

3.可以通过nodeSelector确定将ingress-nginx-controller部署在那些机器上(默认上所有的带有kubernetes.io/os: linux标签的node节点 没有特殊要求可以忽略)

root@k8s-master1:~/ingress# kubectl label nodes k8s-node1 hasIngress=true
node/k8s-node1 labeled
root@k8s-master1:~/ingress# kubectl label nodes k8s-node2 hasIngress=true
node/k8s-node2 labeled
root@k8s-master1:~/ingress#

4.修改配置

修改三个地方
1.HostNetwork
是为了打通Cluster和node的网络,让Cluster直接监听node的端口,一般是80和443,不用再通过随机绑定的nodePort来访问集群服务
可以看到不再需要随机绑定的nodePort了,因为hostNetwork直接监听集群的80端口。
在这里插入图片描述

2.nodeSelector (默认上所有的带有kubernetes.io/os: linux标签的node节点 没有特殊要求可以忽略
主要是为了能够选择将ingress-nginx-controller部署到那个机器上
在这里插入图片描述

3.DaemonSet
因为Deployment可能会把多个pod调度到同一个node,那就失去高可用的意义了。而DaemonSet在一个节点上只会有一个Pod,符合我们的要求。
考虑到单点故障问题,我们可以采取多节点的方式进行部署。 首先我们修改deploy.yaml文件中的类型,注释掉部署数量,并去掉我们的mynginx: "true"标签(因为每个节点都有kubernetes.io/os: linux)。
修改deploy.yaml
在这里插入图片描述

5.执行

kubectl apply -f deploy.yaml

测试

kubectl get pod,svc,ing,deploy -n ingress-nginx

在这里插入图片描述

kubectl create ns test

kubectl create deploy nginx --image=nginx:1.17.1 --replicas=1 -n test

kubectl expose deploy nginx --port=80 -n test

kubectl get pod,svc,ing,deploy -n test

编写 ingress-nginx-test.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-nginx-test
  namespace: test
spec:
  rules:
  - host: k8s.frp.innomcn.com
    http:
      paths:
      - backend:
          service:
            name: nginx
            port:
              number: 80
        path: /
        pathType: Prefix

执行

kubectl apply -f ingress-nginx-test.yaml

访问域名 注意点,ingress部署到哪台node上你就只能配置域名指向那台服务器的ip,如果你配置的域名指向master会访问不了

在这里插入图片描述

参考博客
https://blog.csdn.net/weixin_43501172/article/details/126016524

http://tnblog.net/hb/article/details/7429

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

刘明同学呀

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

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

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

打赏作者

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

抵扣说明:

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

余额充值