Kubernetes 从pod外部但在集群内访问kubernetics服务
我在kubernetes集群内的同一端口上运行多个服务;所以它就像ser1、ser2、ser3一样都使用相同的端口8080。我可以从pod内部访问这些服务,如Kubernetes 从pod外部但在集群内访问kubernetics服务,kubernetes,Kubernetes,我在kubernetes集群内的同一端口上运行多个服务;所以它就像ser1、ser2、ser3一样都使用相同的端口8080。我可以从pod内部访问这些服务,如:8080,但我也可以从一个主机节点(即容器外部但从一个群集节点)以相同的方式访问它们吗 我试着四处看看,但没有找到任何相关的讨论。如果有人可以建议,请告诉我 我的示例配置 apiVersion: v1 kind: Service metadata: name: svc1 namespace: sample labels:
:8080
,但我也可以从一个主机节点(即容器外部但从一个群集节点)以相同的方式访问它们吗
我试着四处看看,但没有找到任何相关的讨论。如果有人可以建议,请告诉我
我的示例配置
apiVersion: v1
kind: Service
metadata:
name: svc1
namespace: sample
labels:
app: svc1
spec:
selector:
app: app1
ports:
- name: psvc1
port: 8080
targetPort: 9090
protocol: TCP
正如Dries所说,使用集群IP,我们可以从节点访问服务
kubectl run nginx --image=nginx --port=80 --expose=true
kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 9d
nginx ClusterIP 10.103.206.246 <none> 80/TCP 52m
# curl 10.103.206.246:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
kubectl运行nginx--image=nginx--port=80--expose=true
kubectl获得svc
名称类型CLUSTER-IP外部IP端口年龄
kubernetes ClusterIP 10.96.0.1 443/TCP 9d
nginx ClusterIP 10.103.206.246 80/TCP 52m
#卷曲10.103.206.246:80
欢迎来到nginx!
您是否尝试过使用clusterIP类型公开服务?这将为您提供一个虚拟集群范围的IP,您可以使用指定的端口调用该IP。谢谢@DriesDeRydt。是的,我可以通过集群IP访问。但当服务启动或重新启动时,同一个clusterIP可能并不总是可用的。有没有一种方法可以告诉Kubernetes保留这样的虚拟IP或者更合适的一系列虚拟IP。我需要在我的负载平衡器中配置这些clusterIp。是的,您可以指定IP:@MarcSluiter同意clusterIp可以工作,但如何控制我选择的clusterIp在容器首次启动或重新启动时尚未分配。你能告诉我任何一个链接吗?在那里我可以看到关于服务集群ip范围价值的详细信息,以及我如何告诉k8es在我的容器启动之前不要使用某个客户ip。服务集群ip范围
是kube apiserver的一个选项,所以只需检查那里配置了什么。不知道k8s如何处理潜在冲突,抱歉