Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.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 从pod外部但在集群内访问kubernetics服务_Kubernetes - Fatal编程技术网

Kubernetes 从pod外部但在集群内访问kubernetics服务

Kubernetes 从pod外部但在集群内访问kubernetics服务,kubernetes,Kubernetes,我在kubernetes集群内的同一端口上运行多个服务;所以它就像ser1、ser2、ser3一样都使用相同的端口8080。我可以从pod内部访问这些服务,如:8080,但我也可以从一个主机节点(即容器外部但从一个群集节点)以相同的方式访问它们吗 我试着四处看看,但没有找到任何相关的讨论。如果有人可以建议,请告诉我 我的示例配置 apiVersion: v1 kind: Service metadata: name: svc1 namespace: sample labels:

我在kubernetes集群内的同一端口上运行多个服务;所以它就像ser1、ser2、ser3一样都使用相同的端口8080。我可以从pod内部访问这些服务,如
: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如何处理潜在冲突,抱歉