问题标签 [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.
mongodb - 暴露和连接作为 K8S Statefulset 运行的 MongoDB ReplicaSet
我在 Kubernetes 中部署了一个 MongoDB ReplicaSet 作为 StatefulSet。我正在运行一个 Bare Metal K8S 集群,因此我使用 MetalLB 来公开 LoadBalancer 类型的服务。如果我的 MongoDB-RS 设置暴露服务如下所示:
这可以按预期工作,但是从外部客户端连接到 RS 时出现问题:
在某些时候它说“将主机更改为 rs0/10.42.2.155:27017,10.42.3.147:27017,10.42.4.108:27017”。由于这些 IP 是集群内部的,因此在此之后连接将失败。
有什么建议我能做什么?
docker - 了解 Kubernetes 中的服务?
我正在从这里学习 k8s 中的服务
我创建了没有选择器和一个端点的服务。我想要做的是我已经安装了 apache,它在端口 80 上运行。我在端口 31000 上创建了一个节点端口服务。现在这个服务应该将 ip:31000 重定向到 ip:80 端口。
它适用于服务的内部 ip,但不适用于外部 ip。
我的服务.yaml
我的端点.yaml
kubectl get service -o wide的输出
kubernetes - Kubernetes LoadBalancer 服务与 hostNetwork 绑定
我有一个关于在 hostNetwork 中使用 LoadBalancer 服务的问题
如果我们设置 hostNetwork: true,那么 Pod 将绑定到主机网络 - 外部服务连接到该网络。如果我们只需要一个运行的 pod 实例——那么我相信我们不需要 LoadBalancer 服务来让外部服务连接到 pod。我在这里看不到任何负载平衡器服务的用例,或者我缺少什么?
kubernetes - Kubernetes:使用静态 IP 的服务和入口公开多个容器
我正在尝试使用 Kubernetes、定义的服务和带有静态 IP 和 ssl 证书的入口将两个 nodejs 应用程序部署为两个单独的容器
我想使用 GCP 的 Kubernetes Engine 部署这些微服务。我添加的第二个微服务比另一个晚。pod 中只有一个容器,一切正常。我定义了三个 yaml 文件:deployment.yaml、service.yaml、ingress.yaml。
部署.yaml
服务.yaml
入口.yaml
使用此配置,只能访问一个服务,第一个
我尝试将多个端口添加到 service.yaml
但我收到一个错误。
我的目标是在域 custom-host.com 上公开两个后端;一个可在特定路径 (api/*) 上到达,另一个可到达所有可能的端点。
谢谢您的帮助
kubernetes-ingress - How to set up ingress in Kubernetes for http and https backend
Let's imagine I have a simple website and I want to run it on Kubernetes. Website should listen HTTP and HTTPS protocols.
In Kubernetes I've set up for it deployment, service and ingress. If I try only port 80, everything works well, but If I want to extend it with HTTPS, everything fails and I'm receiving 404 error from ingress controller. HTTPS traffic should be forwarded directly to backend. How can I do it?
I tried to extend my ingress controller daemon set with --enable-ssl-passthrough=true option (directly in Daemon Set config), but then ingress controller's pod didn't start. I found article in the Internet, that to enable --enable-ssl-passthrough, ingress controller should be installed with that flag: see this page. By the way, how can I "install" ingress controller with that flag?
I tried to add 80 and 443 ports in ingress rules, but without success too.
Kubernetes: v1.14.3 Ingress controller: documentation
Please see my service and ingress:
And in this case ingress controller can't start as it says about duplicated location "/" in config file
Can someone help me with it?
kubernetes - 对 Pod 中同一应用的多个容器进行负载均衡
我有一个场景,我需要在同一个 pod 中运行一个应用容器的两个实例。我将它们设置为侦听不同的端口。下面是部署清单的样子。Pod 以预期的容器数量正常启动。我什至可以从其他 pod 连接到 podIP 上的两个端口。
我什至可以为容器的每个端口创建两个不同的服务,而且效果也很好。我可以单独访问这两个服务并最终访问 Pod 中的相应容器。
我希望容器的两个实例都在一个服务后面,即两个容器之间的循环。我怎样才能做到这一点?在服务领域内可能吗?或者我需要探索类似这样的入口吗?
kubernetes - 为什么 AKS 创建的 Azure 负载均衡器设置为将流量定向到节点上的端口 80 和 443,而不是服务打开的节点端口?
我有一个带有 nginx 入口控制器的 AKS 集群。Controller 已经创建了一个类型为 LoadBalancer 的服务,Ports 部分如下所示(来自kubectl get service
):
80:31141/TCP
如果我理解正确,端口 80 是从外部无法访问的 ClusterIp 端口,但端口 31141 是一个节点端口,可以从外部访问。所以我假设 Azure 负载均衡器正在向这个 31141 端口发送流量。
我惊讶地发现 Azure 负载均衡器设置了一条规则:
所以它实际上确实使用了节点端口,但仅作为健康检查,所有流量都发送到端口 80,其功能可能与 31141 相同。
一个奇怪的提示是,如果我尝试从 pod 访问端口 80 的节点 IP,我只会得到“连接被拒绝”,但我想如果流量来自负载均衡器,它确实可以工作。
我无法在互联网上找到有关此的任何信息,所以问题是这实际上是如何工作的,为什么 ALB 会这样做?
PS我没有连接问题,它可以工作。我只是想了解它在幕后的方式和原因。
kubernetes - Kubernetes 服务端口映射
我注意到,但我无法解释,有些服务有
PORT(S) 部分看起来像这样8080:31637/TCP
。但这项服务
只有80/TCP
. 这些服务之间究竟有什么区别?端口到底是31637
做什么的?
kubernetes - 裸机 K8s:如何保留客户端的源 IP 并将流量定向到当前服务器上的 nginx 副本
我想问你一些帮助:
http/https 集群的入口点是 NGINX:quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.25.0 作为 deamonset 运行
我想实现两件事:
- 保留客户端的源IP
- 将流量直接发送到当前服务器上的 nginx 副本(因此,如果请求被发送到服务器 A,列为外部 IP 地址,节点 A 上的 nginx 应该处理它)
问题:
- 这怎么可能?
- 没有nodeport可以吗?控制平面可以使用自定义 --service-node-port-range 启动,因此我可以为 80 和 443 添加 nodeport,但它看起来有点像 hack(在阅读了关于 nodeport 的预期用途之后)
我正在考虑使用metallb,但是 layer2 配置会导致瓶颈(集群上的高流量)。我不确定BGP是否会解决这个问题。
- Kubernetes v15
- 裸机
- Ubuntu 18.04
- Docker (18.9)和 WeaveNet (2.6)
kubernetes - minikube 中的错误服务/502 错误网关
鉴于以下 K8s 资源(部署/pod、服务、入口),我希望在浏览器中访问时看到请求回显给我https://staging-micro.local/
。我得到的是502 Bad Gateway
.
请注意,我在主机(运行 minikube)上有条目192.168.99.100 staging-micro.local
,/etc/hosts
这是正确的minikube ip
. 如果我删除该服务,点击staging-micro.local/
会给出404 Not Found
默认后端的响应。
我的期望是 Ingress 将主机名staging-micro.local
和路径映射/
到正在侦听端口 80 的服务。然后该服务将请求转发到端口 8000 上的 3 个选定容器之一。 echoserver 容器正在侦听端口 8000,并返回一个以请求为主体的 HTTP 响应。当然,这不是实际发生的情况。
最后,cloudsql-proxy
容器:此时不应涉及,但我将其包括在内是因为我想在 sidecar 容器存在时验证服务是否有效。然后我可以换掉echoserver
我的主应用程序容器。我已经echoserver
删除了测试,并得到了相同的结果。
日志显示echoserver
正在启动而没有错误。
我无法找到任何更全面的文档,echoserver
因此我不是 100% 了解它正在侦听的端口。