首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在k8s上部署带有Helm的nginx-入口控制器,实现负载均衡

如何在k8s上部署带有Helm的nginx-入口控制器,实现负载均衡
EN

Stack Overflow用户
提问于 2019-10-18 18:06:39
回答 1查看 844关注 0票数 3

我正在尝试使用Helm在Kubernetes上部署一个nginx-ingress控制器。

我还想将它配置为将nginx-ingress controller服务的特定端口绑定到我在Vagrant中运行它的VM上的特定节点端口。

例如,我希望:

10000节点端口-> 8080 nginx-入口控制器-> 10000后端服务udp端口

我的Helm部署如下:

代码语言:javascript
复制
release_name=tcp-udp-nginx-ic
http_nodePort=30080
https_nodePort=30443

echo
echo "- Installing -${release_name}- into cluster ..." | cowsay

helm del --purge ${release_name}
helm upgrade --install ${release_name} \
--set controller.service.type=NodePort \
--set controller.service.nodePorts.http=${http_nodePort} \
--set controller.service.nodePorts.https=${https_nodePort} \
--set rbac.create=true \
--set controller.replicaCount=1 \
--set controller.resources.requests."memory"=300Mi \
--set controller.resources.requests."cpu"=300m \
--set controller.resources.limits."memory"=300Mi \
--set controller.resources.limits."cpu"=300m \
--set controller.ingressClass=nginx \
--set controller.tcp.configMapNamespace=default \
--set controller.udp.configMapNamespace=default \
--set udp."8080"="default/the-backend-service:10000" \
--set service.nodePorts.udp."8080"=10000 \
stable/nginx-ingress

我的问题是,为了完成上述任务,我应该以什么格式输入--set service.nodePorts.udp部件?

我使用的格式在关于limitations of --set的Helm文档中被引用。

我知道我很接近,因为当我在本地克隆图表并在values.yml文件中设置以下内容时,播放效果很好。

代码语言:javascript
复制
    nodePorts:
      http: ""
      https: ""
      tcp: {}
#      udp: {}
      udp:
        8080: 10000
        8081: 10001

当我像这样部署它并对入口控制器服务执行desscribe时,我得到:

代码语言:javascript
复制
Name:                     tcp-udp-nginx-ic-nginx-ingress-controller
Namespace:                default
Labels:                   app=nginx-ingress
                          chart=nginx-ingress-1.24.3
                          component=controller
                          heritage=Tiller
                          release=tcp-udp-nginx-ic
Annotations:              <none>
Selector:                 app=nginx-ingress,component=controller,release=tcp-udp-nginx-ic
Type:                     NodePort
IP:                       10.109.1.182
Port:                     http  80/TCP
TargetPort:               http/TCP
NodePort:                 http  30080/TCP
Endpoints:
Port:                     https  443/TCP
TargetPort:               https/TCP
NodePort:                 https  30443/TCP
Endpoints:
Port:                     8080-udp  8080/UDP
TargetPort:               8080-udp/UDP
NodePort:                 8080-udp  10000/UDP
Endpoints:

Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>
EN

回答 1

Stack Overflow用户

发布于 2021-10-21 07:25:48

将复杂的--set设置移动到自定义myvalues.yaml中。您不必克隆图表即可使用yaml文件覆盖图表值。

当您运行helm upgrade --install ${release_name} -f myvalues.yaml stable/nginx-ingress时,它将使用此文件中配置的值覆盖任何默认值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58448595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档