在 https://editor.csdn.net/md/?articleId=106170316中跟着github中的说明进行了初体验。但是发现并不是每个模块都会用到.
| github说明 |
|---|
![]() |
后端service准备
- 两个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 一样有报错。

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






