总的来说,关于设置默认证书的问题可以在这里得到解答:Kubernetes ingress 如何设置default-ssl-certificate?。
我不明白的是这部分:我应该将标志添加--default-ssl-certificate=kube-system/host-cert
为 Ingress 的参数。要发现 NGINX Ingress Controller 的 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
[...]
那么我应该如何向控制器提供标志?
答案1
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 ...