问题标签 [kubernetes-service]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kubernetes - 如何在 Kubernetes 中公开外部 ip?
我想用 minikube 公开我的 kubernetes 集群。
考虑我的树
我在本地构建我的 docker 映像,并且能够通过以下方式运行所有 pod
. 但是,当我跑步时
没有外部 ip 可以连接到集群。试图暴露一个吊舱,但外部 IP 保持不变。为什么没有外部IP?
和
networking - Kubernetes:没有到主机的路由
我有一个 Bare-Metal Kubernetes 自定义设置(使用 Kubernetes the Hard Way 手动设置集群)。一切似乎都正常,但我无法从外部访问服务。
curl时我可以得到服务列表:
但是,当我尝试代理时(使用kubectl proxy
,也使用<master-ip-address>:<port>
):
我得到:
即使我通常卷曲能够解决此问题,请检查以下内容。http://10.44.0.16:3000/
我也会遇到同样的错误。这是我是否从安装 Kubernetes 的 VM 内部卷曲的结果。我可以使用 NodePort 从外部访问我的服务。
如果我通过 Nginx-Ingress 公开它们,我可以访问我的服务。
我使用 Weave 作为 CNI,除了开头的几行关于它无法访问命名空间(RBAC 错误)的日志外,其他日志都是正常的。虽然在那之后日志很好。
使用 CoreDNS,日志看起来很正常。APIServer 和 Kubelet 日志看起来很正常。Kubernetes-Events 看起来也很正常。
附加说明:我分配的DNS Service-IP是
10.3.0.10
,服务IP范围是:10.3.0.0/24
,POD网络是10.2.0.0/16
。我不确定10.44.x.x
它是什么或来自哪里。- 另外,我正在使用 Nginx-Ingress(Helm 图表:https ://github.com/helm/charts/tree/master/stable/nginx-ingress )
以下是其中一项服务的输出:
我不确定如何调试它,即使是一些指向正确方向的指针也会有所帮助。如果还有什么需要,请告诉我。
输出kubectl get svc
:
编辑:
事实证明,尽管运行了 CoreDNS,但由于某种原因我没有kube-dns
运行服务。如此处所述:https ://github.com/kubernetes/kubeadm/issues/1056#issuecomment-413235119
现在我可以成功地从 VM 内部卷曲,但代理访问仍然给我同样的错误:No route to host
. 我不确定为什么或如何解决这个问题,因为我没有看到 DNS 在这里发挥作用,但无论如何它都解决了这个问题。也希望对此有任何可能的解释。
kubernetes - 入口指向服务上的错误端口
我有一个 Kubernetes 服务,它公开两个端口,如下所示
这是入口定义:
但是当我去的时候,www.myhost.com/first/path
我最终得到了正在监听端口8888
的服务m-svc
。可能会发生什么?
另一条信息是我在两个指向同一服务上不同端口的入口之间共享服务,这是一个问题吗?此服务上有一个不同的入口端口,即端口 8888,可以正常工作
我也在使用 F5 控制器
经过大量时间调查,看起来根本原因在 F5s 中,看起来因为后端(Kubernetes 服务)的名称相同,它只在池中创建一个条目并将请求路由到这个后端和在 F5 策略中注册的一个端口。有解决办法吗?一种解决方法是为每个端口创建一个独特的服务,但我不想进行此更改,这在 F5 级别是否可行?
kubernetes - Kubernetes,自动服务回退到另一个命名空间
我的 kubernetes 中有多个由多个命名空间表示的环境。
所有应用程序都有在每个命名空间中定义的服务端点。我们有三个环境,dev、alpha 和 beta。(相当于开发、测试和阶段)。这些环境是永久性的,这意味着所有应用程序都在那里运行。
现在在我的团队中,很少有并行开发发生,我们计划为此版本创建多个环境,并且只有少数应用程序是该版本的一部分。
让我们想想这个例子:我正在构建 feature1 并对 app1 和 app2 产生影响
还有 10 个其他应用程序没有任何影响。
因此,对于我的开发和并行测试大多数服务,我必须指向现有的 alpha 或 beta env,并且只指向命名空间中的 app1 和 app2。
我可以通过为所有其他服务使用 ExternalName 映射来实现这一点。
但是如果我有超过 100 个服务并在 yaml 中管理外部端点,我会感到非常困难。
有什么方法可以将所有流量路由到另一个命名空间(如果不存在具有该名称的服务。)
有没有办法为命名空间设置全局 ExternalName?
mongodb - 无法连接到 Kubernetes 中的 Mongodb pod(连接被拒绝)
我有一些远程虚拟机,我想在其上部署一些 Mongodb 实例,然后使它们可以远程访问,但由于某种原因,我似乎无法完成这项工作。
这些是我采取的步骤:
- 我在远程虚拟机上启动了一个运行 Mongodb 的 Kubernetes pod。
- 然后我通过 Kubernetes NodePort 服务公开了它。
- 然后我尝试从我的笔记本电脑连接到 Mongodb 实例,但没有成功。
这是我用来尝试连接的命令:
(“主机”是指 Kubernetes 主机)。
这是它的输出:
从 Kubernetes 主服务器,我确保 Mongodb pod 正在运行。然后我在容器中运行了一个 shell 并检查了 Mongodb 服务器是否正常工作。此外,我之前已通过在其 yaml 描述中指定“--bind-ip=0.0.0.0”选项来授予对 Mongodb 服务器的远程访问权限。为确保已应用此选项,我在 Mongodb 实例中从同一个 shell 运行此命令:
这是输出:
所以 Mongodb 服务器实际上应该可以远程访问。
我无法弄清楚问题是由 Kubernetes 还是由 Mongodb 引起的。
作为测试,我使用 MySQL 遵循完全相同的步骤,并且效果很好(也就是说,我运行了一个 MySQL pod 并使用 Kubernetes 服务公开它,使其可以远程访问,然后我成功地从我的笔记本电脑)。这会让我认为罪魁祸首是这里的 Mongodb,但我不确定。也许我只是在某个地方犯了一个愚蠢的错误。
有人可以帮我解释一下吗?或者告诉我如何调试这个问题?
编辑:
kubectl describe deployment <mongo-deployment>
根据您的要求,这是命令的输出:
为了完整起见,这里是部署的 yaml 描述:
kubernetes - 如何让一个 Kubernetes 服务与其他 Kubernetes 服务通信?
我有两种服务(客户端和服务器)两种类型的负载均衡器。我想让客户端服务与服务器服务对话。我如何以编程方式进行(通过 yaml 文件等)。
更明确地,客户端运行一个 python 代码,它需要访问服务器的外部 IP。但是我只知道服务器服务名称而不是外部 ip。
当然,解决此问题的一种方法是首先启动服务器并获取外部 ip 并将其添加到客户端的 yaml 文件中。我正在寻找解决方案,比如只知道服务名称就可以访问外部 ip。
客户端和服务器驻留在同一个 Kubernetes 集群中。
Client.yaml客户端运行一个网络服务器,如果有人点击了网络服务器公布的 url,demo.py
应该调用服务器的服务。我正在考虑一种以external-ip
编程方式在此处获取服务器的方法,但是我愿意接受建议。
Server.yaml:它在端口 9000 上公开一个服务,客户端应该调用该服务。
kubernetes - 无法 ping 一个服务到 Kubernetes 集群中的另一个服务?
我创建了一个本地 ubuntu Kubernetes 集群,有 1 个主节点和 2 个从节点。
我在 2 个 pod 中部署了 2 个应用程序并为这两个 pod 创建了服务,它工作正常。我通过键入此命令进入 pod 内部,
无法进行更新,我收到一个错误:
我正在尝试 ping 我的第二个 pod 服务:
如何从第一个节点 ping/调用第二个服务?
kubernetes - Kubernetes 服务架构
在同一个 Kubernetes 集群中,
我可以将多个 StatefulSet 附加到一个无头服务,还是每个 StatefulSet 都有自己的无头服务?这样做有什么好处和坏处?
我可以在同一个集群中混合标准服务和无头服务吗?具体来说,我想使用 LoadBalancer 服务来负载平衡无头服务。我可以定义 LoadBalancer 类型的服务并附加无头服务(ClusterIP = None)吗?如果是,我怎样才能做到这一点?
这是我的预期架构:
任何建议和见解都值得赞赏。
我的设置
我的服务和附加到它的 statefulsets 有不同的标签。
我的豆荚
注意服务端点是<none>
. 我不确定这是正确的设置。
kubernetes - 如何在 GKE 中使用临时 IP 创建 Kubernetes 负载均衡器?
如何配置 LoadBalancer 以检索临时 IP 而不是静态 IP?
我需要这个,所以我不必等待 GOOGLE 从 1 个 IP 地址增加配额......(这是漫长的一天......)
删除loadBalancerIp
字段并重新创建服务后,它仍然处于待处理状态。
这是的输出kubectl get service ****** -o yaml
:
kubernetes - 为 kubernetes pod 分配外部 ip
语境:
- 我们正在与我们的一位客户进行整合
- 为了访问他们的系统,我们需要建立一个 VPN 连接
- 出于安全原因,我们需要将此 VPN 连接绑定到我们这边的静态 IP(基本上,由 Juniper 路由器强制执行的第 4 层安全检查;我们使用 OpenSwan 连接到它)。
- 为此,我们必须从该 IP进行连接;也就是说,我们需要建立一个套接字连接,从路由器的角度来看,源 IP 对应于该静态 IP(当然,这需要成功路由回我们的 pod)
- 客户端在操作方面的资源非常有限,所以这个安全环是连接到他们系统的唯一方法
当我们当前的系统运行 (AWS) Kubernetes 时,它是:
- 由瞬态 pod、瞬态节点和不断变化的 IP 组成
- 可以将 ExternalIP 分配给服务(反过来,可以将其路由到 pod);但是,默认情况下,不保证该 pod 发起的流量的发起者 IP
出于这个原因,我们设置了一个外部盒子并为其分配了弹性 IP,作为 VPN 的绑定,公开端点并调用我们的 Kubernetes 服务。这引入了单点故障——如果那个盒子坏了,我们的集成也会失败。
问题:考虑到上面第一个列表中的限制,在 Kubernetes 世界中可以通过什么方式实现 HA?