k8s_难产的ingress架构初体验(一)

本文记录了在Kubernetes环境中部署Ingress控制器的过程,包括解决webhook验证错误、配置失败策略、调整DNS设置等关键步骤,最终实现通过Ingress路由不同版本的应用服务。

https://editor.csdn.net/md/?articleId=106170316中跟着github中的说明进行了初体验。但是发现并不是每个模块都会用到.

github说明
在这里插入图片描述

后端service准备

  1. 两个version的myapp备用,并配好对应的service
ame:              myappsvc
Namespace:         default
Labels:            <none>
Annotations:       Selector:  app=myapp
Type:              ClusterIP
IP:                10.96.66.66
Port:              <unset>  80/TCP
TargetPort:        80/TCP
Endpoints:         10.244.2.215:80,10.244.2.216:80,10.244.2.217:80 + 2 more...
Session Affinity:  None
Events:            <none>


Name:              myappsvc2
Namespace:         default
Labels:            <none>
Annotations:       Selector:  app=myappsec
Type:              ClusterIP
IP:                10.96.55.55
Port:              <unset>  80/TCP
TargetPort:        80/TCP
Endpoints:         10.244.2.225:80,10.244.2.226:80,10.244.2.227:80 + 2 more...
Session Affinity:  None

部署ingress.yaml

ingress.yaml 配置

[root@test ~]# cat ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingressmyapp
  namespace: ingress-nginx
spec:
  rules:
  - host: pphqq.vicp.net
    http:
     paths:
     - path: /v1
       backend:
        serviceName: myappsvc
        servicePort: 80
     - path: /v2
       backend:
        serviceName: mappsvc2
        servicePort: 80

apply 以后发现有报错

[root@test ~]# kubectl apply -f ingress.yaml
Error from server (InternalError): error when creating "ingress.yaml": Internal error occurred: failed calling webhook "validate.nginx.ingress.kubernetes.io": Post https://ingress-nginx-controller-admission.ingress-nginx.svc:443/extensions/v1beta1/ingresses?timeout=30s: context deadline exceeded

TS 参考1 :https://blog.51cto.com/juestnow/2493608

文中提到**# kubelet 参数node-ip 为ipv6 模式记得修改 service ipFamily: IPv6
模式不然新版本webhook 会报错**

  • 没想到什么: 看到了 ipFamily: IPv6

  • https://github.com/kubernetes/ingress-nginx/blob/master/docs/deploy/index.md
    提到 !!! danger The admission webhook require conectivity between Kubernetes API server and the ingress controller.

  • 又是一个官方文档 https://kubernetes.io/zh/docs/reference/access-authn-authz/extensible-admission-controllers/
    文中提到**对于使用 admissionregistration.k8s.io/v1beta1 创建的 webhook 而言,其默认超时是 30 秒。**这个跟报错中timeout=30s比较像。
    自己跑的安装命令:
    kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-0.32.0/deploy/static/provider/cloud/deploy.yaml
    修改这个文件, 在service下加了 ipFamily: IPv6 ,apply ingress.yaml 一样有报错。

评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值