每次我在 kubernates 中部署新版本时。我得到不同的 EXTERNAL-IP,在下面的情况下是 afea383cbf72c11e8924c0a19b12bce4-xxxxx.us-east-1.elb.amazonaws.com
$ kubectl get services -o wide -l appname=${APP_FULLNAME_SYSTEST},stage=${APP_SYSTEST_ENV}
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
test-systest-lb-https LoadBalancer 123.45.xxx.21 afea383cbf72c11e8924c0a19b12bce4-xxxxx.us-east-1.elb.amazonaws.com 443:30316/TCP 9d appname=test-systest,stage=systest
我如何拥有静态外部 IP (elb),以便可以将其链接到路由 53。我是否必须在 Kubernetes 部署 yaml 文件中包含某些内容。
其他详细信息:我正在使用下面的负载均衡器
spec:
type: LoadBalancer
ports:
- name: http
port: 443
targetPort: 8080
protocol: TCP
selector:
appname: %APP_FULL_NAME%
stage: %APP_ENV%
如果您只是对单个部署进行新构建,那么您应该检查管道对服务执行的操作。你想做一个kubectl apply
以及部署上的滚动更新(前提是在部署上设置了策略)而不修改服务(因此不是delete
and a create
)。如果你这样做kubectl get services
你应该看到它的年龄(你的输出显示 9d 所以这一切都很好)并且kubectl describe service <service_name>
将显示其上的任何事件。
我猜只是想要一个外部IP条目,您可以指向“afea383cbf72c11e8924c0a19b12bce4-xxxxx.us-east-1.elb.amazonaws.com”和不是真正的静态IP https://stackoverflow.com/questions/38063891/how-to-get-permanent-ip-address-of-a-kubernetes-load-balancer-service-on-aws。如果你确实想要一个真正的静态IP,你不会像这样得到它,但你现在可以尝试 NLB https://aws.amazon.com/blogs/opensource/network-load-balancer-support-in-kubernetes-1-9/.
如果您的意思是希望多个部署(不同的微服务)共享一个 IP,那么您可以安装入口控制器并使用 ELB 公开它。然后,当您部署新应用程序时,您可以为每个应用程序使用 Ingress 资源来告诉控制器将它们公开到外部。因此,您可以将所有应用程序放在同一外部 IP 上,但路由到不同的路径或子域下。这nginx 入口控制器是一个不错的选择 https://medium.com/kokster/how-to-setup-nginx-ingress-controller-on-aws-clusters-7bd244278509.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)