在线安装ingress

k8s版本:k8s v1.33.6

 

一,卸载旧版 ingress 

kubectl delete ns ingress-nginx --force --grace-period=0
kubectl get crd | grep ingress | awk '{print $1}' | xargs kubectl delete crd

 

二,安装ingress

1. 下载官方 yaml + 全局替换国内镜像前缀

# 下载 ingress-nginx-v1.11.3部署清单
curl -o ingress-nginx.yaml https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.11.3/deploy/static/provider/baremetal/deploy.yaml

# 全局替换 registry.k8s.io → m.daocloud.io/registry.k8s.io(所有镜像自动走国内加速)
sed -i 's|registry.k8s.io|m.daocloud.io/registry.k8s.io|g' ingress-nginx.yaml

 

2. 部署并设置默认 IngressClass

# 应用清单
kubectl apply -f ingress-nginx.yaml

# 设置nginx为集群默认IngressClass
kubectl annotate ingressclass nginx ingressclass.kubernetes.io/is-default-class="true" --overwrite

# 等待全部pod就绪
kubectl wait pod -n ingress-nginx --for=condition=ready --all --timeout=300s

 

3,验证

kubectl get pods -n ingress-nginx
kubectl get svc -n ingress-nginx
kubectl get ingressclass

 

4,删除webhook勾子

删除weebhook勾子才能创建ingress规则:

kubectl delete ValidatingWebhookConfiguration ingress-nginx-admission --ignore-not-found

 

5,更改ingress对外访问的端口为 30080 / 30443

kubectl edit svc ingress-nginx-controller -n ingress-nginx

 

找到 spec.ports 区域,示例默认配置:

spec:
  clusterIP: 10.96.3.243
  clusterIPs:
  - 10.96.3.243
  externalTrafficPolicy: Cluster
  internalTrafficPolicy: Cluster
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - appProtocol: http
    name: http
    nodePort: 30080    #修改为你要对外的端口
    port: 80                 #service内部端口
    protocol: TCP
    targetPort: http
  - appProtocol: https
    name: https
    nodePort: 30443      #修改为你要对外的端口
    port: 443                 #service内部端口

 

posted @ 2026-08-01 19:12  民工黑猫  阅读(4)  评论(0)    收藏  举报