Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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 GKE 1负载平衡器,在不同的分配端口上具有多个应用程序_Kubernetes_Google Kubernetes Engine - Fatal编程技术网

Kubernetes GKE 1负载平衡器,在不同的分配端口上具有多个应用程序

Kubernetes GKE 1负载平衡器,在不同的分配端口上具有多个应用程序,kubernetes,google-kubernetes-engine,Kubernetes,Google Kubernetes Engine,我希望能够部署多个单吊舱应用程序,并在单个IP地址上访问它们,依靠Kubernetes在使用节点端口服务时按原样分配端口 有没有办法将NodePort与负载平衡器一起使用 老实说,NodePort可能会自行工作,但GKE似乎会阻止对节点的直接访问。在非托管虚拟机上似乎没有防火墙控件 如果我们需要答案,这里有一个服务。在本例中,我想在同一IP上部署10个这些服务,它们是不同的应用程序,每个服务都可以在不同的端口上公开访问,每个代理端口都是nginx容器的80 --- apiVersion: v1

我希望能够部署多个单吊舱应用程序,并在单个IP地址上访问它们,依靠Kubernetes在使用
节点端口
服务时按原样分配端口

有没有办法将
NodePort
与负载平衡器一起使用

老实说,NodePort可能会自行工作,但GKE似乎会阻止对节点的直接访问。在非托管虚拟机上似乎没有防火墙控件

如果我们需要答案,这里有一个服务。在本例中,我想在同一IP上部署10个这些服务,它们是不同的应用程序,每个服务都可以在不同的端口上公开访问,每个代理端口都是nginx容器的80

---
apiVersion: v1
kind: Service
metadata:
  name: foo-svc
spec:
  selector:
    app: nginx
  ports:
    - name: foo
      protocol: TCP
      port: 80
  type: NodePort
有没有办法将NodePort与负载平衡器一起使用

Kubernetes LoadBalancer类型服务构建在NodePort之上。因此,LoadBalancer内部使用NodePort,这意味着创建LoadBalancer类型的服务时,它会自动映射到NodePort。虽然创建NodePort类型的服务并手动配置Google提供的loadbalancer以指向NodePorts很棘手,但这是可能的

有没有办法将NodePort与负载平衡器一起使用

Kubernetes LoadBalancer类型服务构建在NodePort之上。因此,LoadBalancer内部使用NodePort,这意味着创建LoadBalancer类型的服务时,它会自动映射到NodePort。虽然创建NodePort类型的服务并手动配置Google提供的loadbalancer以指向NodePorts很棘手,但这是可能的

GKE似乎阻止了对节点的直接访问

GCP允许创建FW规则,允许进入VPC网络中的“网络中的所有实例”或“指定的目标标签/服务帐户”的流量

除非在组织的策略下指定了相反的规则,否则规则是持久的

节点的外部IP地址可以在云控制台-->计算引擎-->虚拟机实例或使用
kubectl get nodes-o wide
检查

我运行GKE(托管k8s),可以从外部访问我的所有资产。 我已在设置中打开所有需要的端口。下面是最快的例子

您可以在下面找到我的设置:

$ kubectl get nodes -o wide 
NAME        AGE   VERSION           INTERNAL-IP   EXTERNAL-IP
gke--mnnv   43d   v1.14.10-gke.27   10.156.0.11   34.89.x.x   
gke--nw9v   43d   v1.14.10-gke.27   10.156.0.12   35.246.x.x

kubectl get svc -o wide
NAME     TYPE        CLUSTER-IP    EXTERNAL-IP  PORT(S)                         SELECTOR
knp-np   NodePort    10.0.11.113   <none>       8180:30008/TCP 8180:30009/TCP   app=server-go

$ curl 35.246.x.x:30008/test
Hello from ServerGo. You requested: /test 
$kubectl获取节点-o宽
名称年龄版本内部-IP外部-IP
gke——mnnv 43d v1.14.10-gke.27 10.156.0.11 34.89.x.x
gke--nw9v 43d v1.14.10-gke.27 10.156.0.12 35.246.x.x
kubectl获得svc-o宽
名称类型CLUSTER-IP外部IP端口选择器
knp节点端口10.0.11.113 8180:30008/TCP 8180:30009/TCP app=server go
$curl 35.246.x.x:30008/测试
你好,来自ServerGo。您请求了:/test
这就是为什么它看起来像一堆
节点端口
类型
服务
就足够了(每一个都为特定的
选择器
提供请求)

如果出于某种原因,无法设置FW规则以允许直接向您的节点发送流量,则可以配置GCP TCP LoadBalancer

云控制台-->网络服务-->负载平衡-->创建LB-->TCP负载平衡

在那里,您可以选择您的GKE节点(或节点池)作为“后端”,并指定“前端”所需的所有端口。对于前端,您可以在配置期间保留静态IP权限,并将“端口”范围指定为两个由破折号分隔的端口号(假设您有多个端口要转发到节点池)。此外,如果需要,您可以创建多个“前端”

我希望这有帮助

GKE似乎阻止了对节点的直接访问

GCP允许创建FW规则,允许进入VPC网络中的“网络中的所有实例”或“指定的目标标签/服务帐户”的流量

除非在组织的策略下指定了相反的规则,否则规则是持久的

节点的外部IP地址可以在云控制台-->计算引擎-->虚拟机实例或使用
kubectl get nodes-o wide
检查

我运行GKE(托管k8s),可以从外部访问我的所有资产。 我已在设置中打开所有需要的端口。下面是最快的例子

您可以在下面找到我的设置:

$ kubectl get nodes -o wide 
NAME        AGE   VERSION           INTERNAL-IP   EXTERNAL-IP
gke--mnnv   43d   v1.14.10-gke.27   10.156.0.11   34.89.x.x   
gke--nw9v   43d   v1.14.10-gke.27   10.156.0.12   35.246.x.x

kubectl get svc -o wide
NAME     TYPE        CLUSTER-IP    EXTERNAL-IP  PORT(S)                         SELECTOR
knp-np   NodePort    10.0.11.113   <none>       8180:30008/TCP 8180:30009/TCP   app=server-go

$ curl 35.246.x.x:30008/test
Hello from ServerGo. You requested: /test 
$kubectl获取节点-o宽
名称年龄版本内部-IP外部-IP
gke——mnnv 43d v1.14.10-gke.27 10.156.0.11 34.89.x.x
gke--nw9v 43d v1.14.10-gke.27 10.156.0.12 35.246.x.x
kubectl获得svc-o宽
名称类型CLUSTER-IP外部IP端口选择器
knp节点端口10.0.11.113 8180:30008/TCP 8180:30009/TCP app=server go
$curl 35.246.x.x:30008/测试
你好,来自ServerGo。您请求了:/test
这就是为什么它看起来像一堆
节点端口
类型
服务
就足够了(每一个都为特定的
选择器
提供请求)

如果出于某种原因,无法设置FW规则以允许直接向您的节点发送流量,则可以配置GCP TCP LoadBalancer

云控制台-->网络服务-->负载平衡-->创建LB-->TCP负载平衡

在那里,您可以选择您的GKE节点(或节点池)作为“后端”,并指定“前端”所需的所有端口。对于前端,您可以在配置期间保留静态IP权限,并将“端口”范围指定为两个由破折号分隔的端口号(假设您有多个端口要转发到节点池)。此外,如果需要,您可以创建多个“前端”


我希望这有帮助

你真的需要所有这些应用程序在不同的端口上可用,而不是在不同的DNs上(这样简单的入口就可以了)?是的,我在这里简化了用例。每个实例都会暴露2到5个端口,并且对于我的用例,入口路径在两种方式上都有限制。您真的需要所有这些应用程序在不同的端口上可用,而不是在不同的DNs上(所以