【问题标题】:Can not deploy container on gcloud无法在 gcloud 上部署容器
【发布时间】:2019-06-06 23:51:13
【问题描述】:

我正在尝试在 gcloud 上部署以下容器:

https://hub.docker.com/r/anthonydahanne/spring-petclinic/

然后,我执行以下步骤:

  1. 我在 gcloud 上创建了一个命名空间

    kubectl create ns qa

  2. 我创建了一个文件夹“clinic_tai”,其中包含 yaml 文件:

mysql-deployment.yaml mysql-service.yaml mysql-pvc.yaml petclinic-deployment.yaml petclinic-service.yaml

  1. 我构建这些服务

    kubectl --namespace=qa apply -f ~/spring-boot-docker/examples/kubernetes-1.10/clinic_tai/

  2. 我得到了服务的详细信息 `kubectl --namespace=qa 获取服务

    NAME                TYPE           CLUSTER-IP      EXTERNAL-IP       PORT(S)          AGE
mysql               ClusterIP      10.47.254.97    <none>            3306/TCP         25m
petclinic-service   LoadBalancer   10.47.243.216   104.196.116.129   8081:31781/TCP   25m

但是,我无法使用 url 访问应用程序:104.196.116.129:8081

请检查我的 yaml 文件 https://drive.google.com/open?id=1yLCwr8Lvm3fyxoGVc5DQpKFBdDq2CxZv

你知道怎么回事吗?

【问题讨论】:

  • 它可以在普通 Docker 中工作吗?您的服务是否正确附加到生成的 pod?服务中的端口和 Pod 是否匹配?将其减少到 minimal reproducible example 并在问题中包含相关的 Kubernetes YAML 会有所帮助。
  • 您的 pod 的状态如何?他们运行正确吗?您是否尝试过在您的命名空间中创建一个busybox 来测试您是否可以在本地访问该服务? kubectl -n qa run -it --rm --restart=Never busybox --image=busybox shwget -qO- petclinic-service:8081
  • pod状态为running,请看我的yaml文件:drive.google.com/open?id=1yLCwr8Lvm3fyxoGVc5DQpKFBdDq2CxZv
  • @DavidMaze:当我运行你的命令时:它显示“未知速记标志:'q' in -qO-”

标签: docker kubernetes google-kubernetes-engine


【解决方案1】:

很遗憾,我无法访问您的 yaml 文件,但是:

问题可能在于匹配 pod 中选择器的标签。

如果您的 pod 有“app=egg”标签,但服务选择器有“name=egg”。匹配它们修复了访问问题。

刚刚将服务选择器上的 "name: egg" 更改为 "app: egg"。如果您在部署时设置 matchLabels。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2020-11-06
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 2019-10-26
    • 2019-07-21
    相关资源
    最近更新 更多