微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Google Cloud Code ItelliJ 时如何让 Google Kubernetes Engine LoadBalancer 服务接收外部流量?

如何解决使用 Google Cloud Code ItelliJ 时如何让 Google Kubernetes Engine LoadBalancer 服务接收外部流量?

我有一个正常工作的 GKE 集群在端口 80 上提供内容。如何让负载均衡器服务在外部(区域保留)静态 IP 111.222.333.123 上传内容

我看到 kubectl get service 显示外部静态 IP 已成功注册。外部 IP 确实响应 ping 请求。

NAME            TYPE           CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
kubernetes      ClusterIP      10.16.0.1     <none>        443/TCP        17h
myapp-cluster   NodePort       10.16.5.168   <none>        80:30849/TCP   84m
myapp-service   LoadBalancer   10.16.9.255   111.222.333.123   80:30879/TCP   6m20s

此外,Google Cloud Platform 控制台显示转发规则已建立并正确引用 GKE 目标池。

我使用的部署和服务清单如下所示:

apiVersion: apps/v1
kind: Deployment
Metadata:
  name: myapp
  labels:
    app: myapp
spec:
  replicas: 2
  selector:
    matchLabels:
      app: myapp
      environment: sandBox
  template:
    Metadata:
      labels:
        app: myapp
        environment: sandBox
    spec:
      containers:
        - name: myapp
          image: myapp
          imagePullPolicy: Always 
          ports:
            - containerPort: 8080
      restartPolicy: Always
---
apiVersion: v1
kind: Service
Metadata:
  name: myapp-service
spec:
  selector:
    app: myapp
    environment: sandBox
  ports:
    - port: 80
      targetPort: 8080
  type: LoadBalancer
  loadBalancerIP: "111.222.333.123" 

相关的 skaffold 配置文件供参考:

apiVersion: skaffold/v2beta18
kind: Config
Metadata:
  name: myapp
build:
  artifacts:
  - image: myapp
    context: .
    docker: {}
deploy:
  kubectl:
    manifests:
    - gcloud_k8_staticip_deployment.yaml

在使用 Google Cloud Code 运行此配置时,我缺少什么以允许流量到达 GKE 集群?

如果之前有人问过这个问题,我们深表歉意。如果我错过了正确的解决方案审查问题,很高兴指出。

解决方法

据我所知,这个问题中引用的配置实际上应该有效,只要图像指向可访问的位置。我已经确认此配置可以在完全没有 IDE 的情况下使用玩具设置工作,仅使用 gcloud shell 并且一切正常。

该问题源于 Google Cloud Code 在运行配置中配置了上下文切换时更改了 kubectl context 而没有任何额外警告。

,

我复制了您的设置并遇到了与您相同的问题(能够 ping 服务 IP,但无法从浏览器连接到它)。

然后我将部署容器端口更改为 80,将服务目标端口更改为 80,将服务端口更改为 8080,并且成功了,然后我能够使用服务 IP 从浏览器连接到部署。

部署清单文件: From the deployment manifest file :

服务清单文件: From the service manifest file

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?