Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 如何为kubernates部署使用静态ELB端点_Kubernetes_Amazon Elb - Fatal编程技术网

Kubernetes 如何为kubernates部署使用静态ELB端点

Kubernetes 如何为kubernates部署使用静态ELB端点,kubernetes,amazon-elb,Kubernetes,Amazon Elb,每次我在kubernates中部署新构建时。我得到了不同的外部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

每次我在kubernates中部署新构建时。我得到了不同的外部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。我必须在我的Kubernates部署yml文件中包含一些内容吗

其他详细信息:我正在使用下面的loadbalancer

spec:
  type: LoadBalancer
  ports:
  - name: http
    port: 443
    targetPort: 8080
    protocol: TCP
  selector:
    appname: %APP_FULL_NAME%
    stage: %APP_ENV%

如果您只是在进行单个部署的新构建,那么您应该检查管道对服务所做的工作。您希望在部署上执行
kubectl apply
和滚动更新(前提是在部署上设置了策略),而不修改服务(因此不是
delete
create
)。如果您执行
kubectl get services
操作,您应该看到它的年龄(您的输出显示9d,这很好),并且
kubectl descripe service
将显示它上的任何事件

我猜您只需要一个外部IP条目,您可以指向“afea383cbf72c11e8924c0a19b12bce4-xxxxx.us-east-1.elb.amazonaws.com”和。如果你想要一个真正的静态IP,你不会像这样得到它,但你


如果您的意思是希望多个部署(不同的微服务)共享一个IP,那么您可以安装入口控制器并使用ELB公开该控制器。然后,当您部署新的应用程序时,您会为每个应用程序使用入口资源,以通知控制器将其公开到外部。因此,您可以将所有应用放在同一个外部IP上,但路由到不同的路径或子域。.

嗨,Ryan,谢谢你的帮助。事实上,我正在部署yml时使用loadbalancer。补充我的问题。事实上,不是所有的时间,但有时当我重新部署时,您会看到前面的字母数字部分,即us-east-1.elb.amazonaws.com正在发生变化。这使得与53号公路的连接变得困难。您是否也看到了服务变更的记录?发生这种情况时是否对服务进行了更改(例如,选择器的更改)?您应该能够拥有一个稳定的服务,并使用AWS更新部署—Yaa就是一个例子。我实际上正在做滚动更新。因此,每当我部署新构建时,elb端点都不会改变,但如果我删除并重新创建,那么只有它会改变。所以我想我可以使用elb端点并将其与路由53连接起来。它会起作用的。我想是的,只要在重新创建服务时小心地更新route53,就可以尽量减少更新频率。另一种选择是使用入口。然后,您只需部署并公开一次入口控制器(使用其自己的ELB),此部分不会更改。当您想要公开新事物或以不同方式公开它们时,只有入口资源/规则会更改,并且所有请求都会通过入口控制器。我只是在这里提到入口部分。希望这能解决我的问题。看来入口是最好的选择。谢谢,瑞安