Kubernetes
向不作為部署執行的 NGINX 入口控制器提供標誌
一般來說,我關於設置預設證書的問題在這裡得到解答:Kubernetes ingress How to set default-ssl-certificate? .
我不明白的是這部分:我應該將標誌添加
--default-ssl-certificate=kube-system/host-cert
為 Ingress 的參數。為了發現 NGINX 入口控制器的 YAML 配置文件設置,我應該使用以下命令檢查它kubectl describe deployment/nginx-ingress-controller --namespace
:但它不作為部署執行:$ kubectl get deployments --all-namespaces NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE kube-system kubernetes-dashboard 1/1 1 1 3d kube-system kubernetes-metrics-scraper 1/1 1 1 3d
它只能作為一個 pod:
$ kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE ingress-nginx ingress-nginx-controller-8xcl9 1/1 Running 1 (2d ago) 3d ingress-nginx ingress-nginx-controller-hwhvk 1/1 Running 1 (2d ago) 3d ingress-nginx ingress-nginx-controller-xqdqx 1/1 Running 3 (2d ago) 3d kube-system kubernetes-dashboard-548847967d-66dwz 1/1 Running 2 (2d ago) 3d kube-system kubernetes-metrics-scraper-6d49f96c97-r6dz2 1/1 Running 1 (2d ago) 3d [...]
那我應該如何將標誌提供給控制器?
ingress-nginx
可以作為部署或守護程序安裝。在您的情況下,如果您沒有看到部署,則它是一個守護程序。您可以通過執行找到它:
kubectl get daemonset -A
並以與部署相同的方式進行編輯:
kubectl edit daemonset ingress-nginx-controller -n ingress-nginx
您可以在此處找到有關 ingress-nginx 和 daemonset 的詳細資訊
筆記!您將要進行的更改不會是永久性的(直到任何升級/重新應用清單)。根據最初的部署方式,有兩種選擇:
- 從清單
您需要將其添加到清單中,以便任何其他更新/
kubectl apply -f manifest.yaml
將包含此標誌,並且一切都將繼續工作
- 使用掌舵
您需要將此資訊添加到
helm_repo/templates/controller-daemonset.yaml
:args: - /nginx-ingress-controller ... - --default-ssl-certificate=kube-system/host-cert ...