我希望避免对某个Kubernetes服务使用类型:“LoadBalancer”,但仍然能够在Internet上发布它。我正在使用Google云平台(GCP)运行一个Kubernetes群集,该群集当前运行在单个节点上。
我尝试向我们提供外部IP服务配置,并轮流提供以下IP:
以上都没有帮助我使用带有外部IP
配置的库伯内特斯服务访问我的应用程序。
那么,如何在不使用负载平衡器(LoadBalancer)类型的Kubernetes服务的情况下在Internet上发布服务呢。
有几种惯用方法可以在Kubernetes中对外公开服务(请参见注释1):
还有另一个选项:在pod上设置hostNetwork标志。
例如,您可以使用helm3以这种方式安装nginx:
helm install --set controller.hostNetwork=true nginx-ingress nginx-stable/nginx-ingress
然后,nginx在端口80可用
如果您不想使用负载平衡器服务,其他公开服务的选项有:
使用type
设置为NodePort
创建您的服务,库伯内特斯将在您的所有节点VM上分配一个端口,您的服务将在该端口上公开(文档)。例如,如果您有2个节点,w/public IP12.34.56.78
和23.45.67.89
,并且库伯内特斯分配了您的服务端口31234,那么该服务将在两个12.34.56.78:31234
上公开可用
如果您有能力将公共IP路由到您的节点,您可以在服务中指定ExternalIP,告诉Kubernetes“如果您看到有什么东西是通过我的服务端口发送到该IP的,请将它路由到我。”(文档)
集群endpoint对此不起作用,因为这只是Kubernetes主机的IP。另一个负载平衡器服务的公共IP无法工作,因为负载平衡器仅配置为路由该原始服务的端口。我希望节点IP正常工作,但如果您的服务端口是特权端口,则可能会发生冲突。
Kubernetes API包含一个代理endpoint,允许您访问集群endpointIP上的服务。E、 g.如果您的群集endpoint是1.2.3.4,则可以通过访问
https://1.2.3.4/api/v1/proxy/namespaces/my-ns/services/my-service
使用群集凭据。这实际上只应用于测试/调试,因为它会在到达服务的过程中通过Kubernetes主机传输所有流量(额外跳数、SPOF等)。
我到处都读过,要设置Https来访问kubernetes集群,您需要有入口,而不仅仅是一个负载平衡器服务,它还将集群暴露在外部。 我的问题是非常理论化的:如果入口(确实是)由负载平衡器服务、控制器(例如nginx映像的部署/pod)和一组规则(为了正确代理集群内的传入请求)组成,为什么我们不能在负载平衡器前设置Https而不是入口? 作为练习的标题,我自己分别构建了这三个组件(一个负载平衡器、一个
我希望创建一个机器人集成他们提供的机器人框架DirectLineAPI。 但是,我希望该服务与云服务无关。因此,我们的想法是使用BotFramework功能启动对话,并使用它生成的对话id持久化对话缓存,但业务逻辑可以位于任何云服务(AWS/Google/IBM Cluod)等上。 是否有可能使用DirectLine API进行相同的设计,而不绑定到使用Azure Bot服务? https://d
什么是port和targetport? 是否为每个代理设置LoadBalancer服务? 这些多个代理是否映射到cloud LB的单个公共IP地址? K8S/Cloud之外的服务如何访问单个代理?通过使用?或者使用?。还有,这里用的是哪个端口?还是? 如何在Kafka Broker的属性中指定此配置?对于k8s集群内部和外部的服务,As端口可能不同。 请帮忙。
问题内容: 我正在使用Hibernate + JPA作为我的ORM解决方案。 我正在使用HSQL进行单元测试,并使用PostgreSQL作为真正的数据库。 我希望能够将Postgres的本机UUID类型与Hibernate一起使用,并在其String表示形式中将UUID与HSQL一起用于单元测试(因为HSQL没有UUID类型)。 我正在为Postgres和HSQL单元测试使用具有不同配置的持久性X
在 play-with-k8s https://labs.play-with-k8s.com/ 搭建了一个k8s集群,部署了一个service get service的情况 get pods的情况 每一个pod中都有一个nginx容器,我手动进入到了每一个nginx容器中 修改index.htmll 为1111,22,333. 问题: service 是loadbalancer类型,且没有外部ip
我正在建立一个应用程序,用户将把他们的测试和作业和任何东西。我想知道我的应用程序是否有可能在测试前一周和一天发出通知? 我看到的到处都是firebase通知和push通知。 我不想要这些在线通知,我将需要应用程序发送他们自己离线。这可能吗?