kubernetes - 我如何通过命令行进行此部署

标签 kubernetes google-kubernetes-engine

我可以像这样进行部署,但是不能通过命令行来完成。



我一直在想像这样

kubectl create -f kubernetes-rc.json
{
  "kind": "ReplicationController",
  "apiVersion": "v1",
  "metadata": {
    "name": "foo-frontend-rc",
    "labels": {
      "www": true
    },
    "namespace": "foo"
  },
  "spec": {
    "replicas": 1,
    "template": {
      "metadata": {
        "labels": {
          "app": "foo-frontend"
        }
      },
      "spec": {
        "containers": [
          {
            "name": "foo-frontend",
            "image": "gcr.io/atomic-griffin-130023/foo-frontend:b3fc862",
            "ports": [
              {
                "containerPort": 3009,
                "protocol": "TCP"
              }
            ],
            "imagePullPolicy": "IfNotPresent"
          }
        ],
        "restartPolicy": "Always",
        "dnsPolicy": "ClusterFirst"
      }
    }
  }
}


kubectl create -f kubernetes-service.json
{
  "kind": "Service",
  "apiVersion": "v1",
  "metadata": {
    "name": "foo-frontend-service"
  },
  "spec": {
    "selector": {
      "app": "foo-frontend-rc"
    },
    "ports": [
      {
        "protocol": "TCP",
        "port": 80,
        "targetPort": 3009
      }
    ]
  }
}

无济于事。它创建rc,但不会在外部公开该服务。

最佳答案

您服务的选择器错误。应该从pod模板中选择一个标签,而不是RC本身的标签。

如果您在服务中更改以下内容:

"selector": {
  "app": "foo-frontend-rc"
},

至:
"selector": {
  "app": "foo-frontend"
},

它应该修复它。

更新资料

将您的服务定义更改为
{
  "kind": "Service",
  "apiVersion": "v1",
  "metadata": {
    "name": "foo-frontend-service"
  },
  "spec": {
    "selector": {
      "app": "foo-frontend"
    },
    "ports": [
      {
        "protocol": "TCP",
        "port": 80,
        "targetPort": 3009,
        "nodePort": 30009
      }
    ],
    "type": "LoadBalancer"
  }
}

关于kubernetes - 我如何通过命令行进行此部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37060905/

相关文章:

docker - 如何从docker主机外部生产运行在容器内的kafka代理?

Kubernetes-入口 : Error: connect ECONNREFUSED 127. 0.0.1:80

kubernetes/kubectl 有没有办法在使用 rollout undo 后前滚更新?

kubernetes - Cloud Composer 无法连接到 Cloud SQL 代理服务

postgresql - 如何使用 --login-token、--token 和 --auto-iam-authn 手动使用 cloud-sql-proxy?

kubernetes - 通过入口服务将来自 kubernetes pod 的 http 请求发送到 Minikube 中的另一个 pod

linux - 在 kubernetes 中让 pod 进入休眠状态

kubernetes - 如何使用Kubernetes和Gitlab CI/CD在Google Cloud Platform中部署多个环境?

kubernetes - 为 GKE 上的负载均衡器设置静态外部 IP

amazon-web-services - 亚马逊 EKS : Setting up worker nodes on spot instances