【问题标题】:Kubernetes Deployment HangingKubernetes 部署挂起
【发布时间】:2016-01-30 06:47:19
【问题描述】:

遵循文档中的部署示例。我正在尝试部署示例 nginx。使用以下配置:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

到目前为止,部署总是挂起。我试图查看是否出于某种原因需要部署一个名为 nginx 的 pod。这并没有解决问题。

$ sudo kubectl get deployments
NAME               UPDATEDREPLICAS   AGE
nginx-deployment   0/3               34m

$ sudo kubectl describe deployments
Name:                           nginx-deployment
Namespace:                      default
CreationTimestamp:              Sat, 30 Jan 2016 06:03:47 +0000
Labels:                         app=nginx
Selector:                       app=nginx
Replicas:                       0 updated / 3 total
StrategyType:                   RollingUpdate
RollingUpdateStrategy:          1 max unavailable, 1 max surge, 0 min ready    seconds
OldReplicationControllers:      nginx (2/2 replicas created)
NewReplicationController:       <none>
No events.

当我检查来自 kubernetes 的事件时,我看不到属于此部署的事件。有没有人经历过这种情况?

版本如下:

Client Version: version.Info{Major:"1", Minor:"1", GitVersion:"v1.1.3", GitCommit:"6a81b50c7e97bbe0ade075de55ab4fa34f049dc2", GitTreeState:"clean"}
Server Version: version.Info{Major:"1", Minor:"1", GitVersion:"v1.1.3", GitCommit:"6a81b50c7e97bbe0ade075de55ab4fa34f049dc2", GitTreeState:"clean"}

【问题讨论】:

  • 您是否有另一个控制器(如 rc)与部署 pod 发生冲突?即带有 selector=app:nginx 的 rc 可能会尝试扩大 pod,而部署 rc 会尝试缩小具有相同标签的 pod。
  • 这不会出现在事件中吗?我后来添加了一个具有相同标签的 rc,因为我认为它可能需要一个已经存在的 pod 才能正常运行...
  • 这应该出现在 rc 的事件中,但是事件是 gc 的,所以它们不会存在太久。我不确定战斗是否会出现在部署本身的事件中。

标签: deployment kubernetes


【解决方案1】:

如果部署没有创建任何 pod,您可以查看事件,可能会报告错误,例如:

kubectl get events --all-namespaces                         
NAMESPACE   LASTSEEN   FIRSTSEEN   COUNT     NAME                   KIND         SUBOBJECT   TYPE      REASON         SOURCE                    MESSAGE
default     8m         2d          415       wordpress              Ingress                  Normal    Service        loadbalancer-controller   no user specified default backend, using system default
kube-lego   2m         8h          49        kube-lego-7c66c7fddf   ReplicaSet               Warning   FailedCreate   replicaset-controller     Error creating: pods "kube-lego-7c66c7fddf-" is forbidden: service account kube-lego/kube-lego2-kube-lego was not found, retry after the service account is created

也可以看看kubectl get rs --all-namespaces

【讨论】:

    【解决方案2】:

    我从issues page找到了答案

    为了在启用并重新启动 kube-apiserver 后使部署正常工作,您还必须重新启动 kube-controller-manager。

    【讨论】:

    • 如何重启apiserver和controller manager?
    【解决方案3】:

    您可以检查命令kubectl describe pod name_of_your_pod有什么问题

    【讨论】:

    • 它不是一个 pod,它是一个部署。没有任何事件出现,似乎它甚至没有尝试创建任何东西。
    猜你喜欢
    • 2017-11-04
    • 2020-09-15
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多