K8s与CICD 部署 - 2. 安装k8s - 3.安装nginx-ingress

3 阅读1分钟

nginx-ingress提供外部访问容器服务的入口,用起来和nginx类似

查看当前是否存在ingress

# 1. 查看是否有Ingress Controller Pod
kubectl get pods -A | grep ingress

# 2. 查看已定义的IngressClass
kubectl get ingressclass

# 3. 查看集群默认IngressClass(标注为true)
kubectl get ingressclass -o jsonpath='{.items[?(@.metadata.annotations.ingressclass.kubernetes.io/is-default-class=="true")].metadata.name}'

安装nginx-ingress

# 安装官方Nginx Ingress Controller
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml

# 验证Pod运行
kubectl get pods -n ingress-nginx

# 查看Service(单节点通常为NodePort)
kubectl get svc -n ingress-nginx

在物理机的nginx修改配置指向nginx-ingress

#我这个占用的31661对应80端口
❯ kubectl get svc -n ingress-nginx

NAME                                 TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-controller             LoadBalancer   10.102.243.179   <pending>     80:31661/TCP,443:30732/TCP   25m
ingress-nginx-controller-admission   ClusterIP      10.96.38.70      <none>        443/TCP                      25m

#在nginx-ingress上添加配置

server {
    listen 80;
    server_name *.cyan.com;

    location / {
        proxy_pass http://10.0.0.2:31661;  # 👈 改成你自己的 NodePort
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 3600;
    }
}