【发布时间】:2020-11-17 03:57:25
【问题描述】:
我正在尝试使用 Helm 作为 DaemonSet 在 K8S 集群上使用 HostNetwork 安装 Ngnix Ingress。目标是将其用作 AWS ALB 后面的反向代理,将外部请求路由到集群中。我使用的是如下(它是 CDK,但应该没关系):
cluster.addChart('NginxIngress', {
chart: 'nginx-ingress',
repository: 'https://kubernetes-charts.storage.googleapis.com',
namespace: 'ingress-nginx',
wait: true,
values: {
controller: {
kind: 'DaemonSet',
hostNetwork: true,
daemonset: {
useHostPort: true,
},
service: {
enabled: false,
},
}
}
});
当我描述 DaemonSet 时,我仍然看到 HTTPS 端口:
Containers:
nginx-ingress-nginx-ingress:
Image: us.gcr.io/k8s-artifacts-prod/ingress-nginx/controller:v0.34.1
Ports: 80/TCP, 443/TCP
Host Ports: 80/TCP, 443/TCP
我无法验证它是否真的在监听节点上的端口,因为它是私有的(有没有办法像我们为服务所做的那样使用 kubectl 端口转发节点端口?请注意,没有我的配置中的 Nginx 服务。)
有什么我需要做的吗?同样,我的目标是让 Nginx 作为 HTTP(不是 HTTPS)反向代理。谢谢。
更新 #1
我已经尝试设置controller.service.enableHttps=false。它会在我完全禁用的服务上禁用 HTTPS。
同样将controller.daemonset.hostPorts.https留空也行不通,因为我认为,如果为空,它会选择默认值。
【问题讨论】:
-
您是否尝试在用于安装 helm chart 的
config.yaml中添加controller.service.enableHttps: false? -
是的,它是为服务而不是守护进程。我完全禁用了该服务。
标签: nginx kubernetes kubernetes-helm