【发布时间】:2020-05-21 00:45:59
【问题描述】:
我的图像托管在 GCR 上。 我想在我的本地系统(mac)上创建 Kubernetes 集群。
我遵循的步骤:
- 创建 imagePullSecretKey
- 创建通用密钥以与 GCP 通信。 (kubectl create secret generic gcp-key --from-file=key.json)
- 我有 deployment.yaml 文件
apiVersion: apps/v1 kind: Deployment metadata: name: sv-premier spec: selector: matchLabels: app: sv-premier template: metadata: labels: app: sv-premier spec: volumes: - name: google-cloud-key secret: secretName: gcp-key containers: - name: sv-premier image: gcr.io/proto/premiercore1:latest imagePullPolicy: Always command: ["echo", "Done deploying sv-premier"] volumeMounts: - name: google-cloud-key mountPath: /var/secrets/google env: - name: GOOGLE_APPLICATION_CREDENTIALS value: /var/secrets/google/key.json ports: - containerPort: 8080 imagePullSecrets: - name: imagepullsecretkey
当我执行命令 - kubectl apply -f deployment.yaml 时,我得到 CrashLoopBackOff 错误
日志 -
kubectl 描述 pods podname
========================
名称:sv-premier-6b77ddd747-cvdr5
命名空间:默认
优先级:0
节点:docker-desktop/192.168.65.3
开始时间:2020 年 2 月 4 日星期二 14:18:47 +0530
标签:app=sv-premier
pod-template-hash=6b77ddd747
注释:
状态:正在运行
IP:10.1.0.43
IP:
控制者:ReplicaSet/sv-premier-6b77ddd747
容器:
sv-英超联赛:
Container ID: docker://141126d732409427fe39b405865f88856ac4e1d8586112797fc5bf4fdfbe317c Image: gcr.io/proto/premiercore1:latest Image ID: docker-pullable://gcr.io/proto/premiercore1@sha256:b3800ccca3f30725d5c9235dd349548f0fcfe309f51883d8af16397aef2c3953 Port: 8080/TCP Host Port: 0/TCP Command: echo Done deploying sv-premier State: Waiting Reason: CrashLoopBackOff Last State: Terminated Reason: Completed Exit Code: 0 Started: Tue, 04 Feb 2020 15:00:51 +0530 Finished: Tue, 04 Feb 2020 15:00:51 +0530 Ready: False Restart Count: 13 Environment: GOOGLE_APPLICATION_CREDENTIALS: /var/secrets/google/key.json Mounts: /var/run/secrets/kubernetes.io/serviceaccount from default-token-s4jgd (ro) /var/secrets/google from google-cloud-key (rw)条件:
类型状态
初始化为真
准备假
ContainersReady 错误
PodScheduled True
卷:
谷歌云密钥:
Type: Secret (a volume populated by a Secret) SecretName: gcp-key Optional: false默认令牌-s4jgd:
Type: Secret (a volume populated by a Secret) SecretName: default-token-s4jgd Optional: falseQoS 等级:尽力而为
节点选择器:
容忍度:node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s事件:
输入原因年龄来自
留言---- ------ ---- ----
正常调度 46m 默认调度器
成功分配 default/sv-premier-6b77ddd747-cvdr5 到 码头工人桌面Normal Pulled 45m (x4 over 46m) kubelet, docker-desktop 成功拉取图片 "gcr.io/proto/premiercore1:latest"
Normal Created 45m (x4 over 46m) kubelet, docker-desktop 创建容器 sv-premier
正常启动 45m(x4 超过 46m)kubelet,docker-desktop 启动容器 sv-premier
Normal Pulling 45m (x5 over 46m) kubelet, docker-desktop 拉取镜像“gcr.io/proto/premiercore1:latest”
Warning BackOff 92s (x207 over 46m) kubelet, docker-desktop 回退重启失败的容器
========================
输出为 -
kubectl logs podname --> 完成部署 sv-premier
我很困惑为什么我的容器正在退出。无法启动。
请指导。
【问题讨论】:
-
您的容器已完成,退出代码为零,即成功代码。你应该用一个长时间运行的命令替换你的命令,比如
sleep -
谢谢 DT。它解决了我的问题。这里有一个简单的问题 - 创建部署时,我正在尝试使用 curl localhost:8080 访问应用程序,但是 - 无法连接到 localhost 端口 8080:连接被拒绝
-
您需要通过服务公开您的部署阅读更多here
-
嗨@DT。你能看看这个吗--stackoverflow.com/q/60088378/2784032
标签: kubernetes google-cloud-platform kubectl