pod 没有在 kubernetes 中创建,但存在部署?

     2023-02-19     62

关键词:

【中文标题】pod 没有在 kubernetes 中创建,但存在部署?【英文标题】:pod are not getting created in kubernetes but deployment exists? 【发布时间】:2019-10-25 17:56:41 【问题描述】:

我有一个在 Azure 云上运行的集群。我在该集群上部署了对等服务。但是该部署的 pod 没有被创建。我还扩大了该分解的副本集。

即使我尝试创建 docker busybox 映像的简单部署,它也无法创建 pod。

请指导我可能是什么问题?

编辑

描述部署的输出

Name:               peer0-org-myorg
Namespace:          internal
CreationTimestamp:  Tue, 28 May 2019 06:12:21 +0000
Labels:             cattle.io/creator=norman
                    workload.user.cattle.io/workloadselector=deployment-internal-peer0-org-myorg
Annotations:        deployment.kubernetes.io/revision=1
                    field.cattle.io/creatorId=user-b29mj
                    field.cattle.io/publicEndpoints=null
Selector:           workload.user.cattle.io/workloadselector=deployment-internal-peer0-org-myorg
Replicas:           1 desired | 1 updated | 1 total | 1 available | 0 unavailable
StrategyType:       Recreate
MinReadySeconds:    0
Pod Template:
  Labels:       workload.user.cattle.io/workloadselector=deployment-internal-peer0-org-myorg
  Annotations:  cattle.io/timestamp=2019-06-11T08:19:40Z
                field.cattle.io/ports=[["containerPort":7051,"dnsName":"peer0-org-myorg-hostport","hostPort":7051,"kind":"HostPort","name":"7051tcp70510","protocol":"TCP","sourcePort":7051,"containerPo...
  Containers:
   peer0-org-myorg:
    Image:       hyperledger/fabric-peer:1.4.0
    Ports:       7051/TCP, 7053/TCP
    Host Ports:  7051/TCP, 7053/TCP
    Environment:
      CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS:  couchdb0:5984
      CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD:        root
      CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME:        root
      CORE_LEDGER_STATE_STATEDATABASE:                 CouchDB
      CORE_LOGGING_CAUTHDSL:                           INFO
      CORE_LOGGING_GOSSIP:                             WARNING
      CORE_LOGGING_GRPC:                               WARNING
      CORE_LOGGING_MSP:                                WARNING
      CORE_PEER_ADDRESS:                               peer0-org-myorg-com:7051
      CORE_PEER_ADDRESSAUTODETECT:                     true
      CORE_PEER_FILESYSTEMPATH:                        /var/hyperledger/peers/peer0/production
      CORE_PEER_GOSSIP_EXTERNALENDPOINT:               peer0-org-myorg-com:7051
      CORE_PEER_GOSSIP_ORGLEADER:                      false
      CORE_PEER_GOSSIP_USELEADERELECTION:              true
      CORE_PEER_ID:                                    peer0.org.myorg.com
      CORE_PEER_LOCALMSPID:                            orgMSP
      CORE_PEER_MSPCONFIGPATH:                         /mnt/crypto/crypto-config/peerOrganizations/org.myorg.com/peers/peer0.org.myorg.com/msp
      CORE_PEER_PROFILE_ENABLED:                       true
      CORE_PEER_TLS_CERT_FILE:                         /mnt/crypto/crypto-config/peerOrganizations/org.myorg.com/peers/peer0.org.myorg.com/tls/server.crt
      CORE_PEER_TLS_ENABLED:                           false
      CORE_PEER_TLS_KEY_FILE:                          /mnt/crypto/crypto-config/peerOrganizations/org.myorg.com/peers/peer0.org.myorg.com/tls/server.key
      CORE_PEER_TLS_ROOTCERT_FILE:                     /mnt/crypto/crypto-config/peerOrganizations/org.myorg.com/peers/peer0.org.myorg.com/tls/ca.crt
      CORE_PEER_TLS_SERVERHOSTOVERRIDE:                peer0.org.myorg.com
      CORE_VM_ENDPOINT:                                unix:///host/var/run/docker.sock
      FABRIC_LOGGING_SPEC:                             DEBUG
    Mounts:
      /host/var/run from worker1-dockersock (ro)
      /mnt/crypto from crypto (ro)
      /var/hyperledger/peers from vol2 (rw)
  Volumes:
   crypto:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  worker1-crypto-pvc
    ReadOnly:   false
   vol2:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  worker1-pvc
    ReadOnly:   false
   worker1-dockersock:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  worker1-dockersock
    ReadOnly:   false
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Progressing    True    NewReplicaSetAvailable
  Available      True    MinimumReplicasAvailable
OldReplicaSets:  peer0-org-myorg-6d6645ddd7 (1/1 replicas created)
NewReplicaSet:   <none>
Events:          <none>

【问题讨论】:

kubectl describe deploy %deploymentname% 看看它是否说了什么有意义的东西 正如你所说,部署已创建但没有 pod,我们需要的是副本集的输出来找出它无法创建 pod 的原因,你能做一个kubectl get replicaset然后找到对应于你的部署然后kubectl describe replicaset &lt;replicaset_name&gt; 【参考方案1】:

您的 pod 可能被破坏的原因有上百万种,您可以获得大量信息,这些信息可以为您提供有关未创建 pod 的原因的更多信息。我会开始:

豆荚在说什么:

kubectl get pods --all-namespaces -o wide

如果您可以看到 pod 但它们有错误,那么错误说明了什么。进一步描述破碎的豆荚。

kubectl describe pod <pod-name>

或者抓取日志

kubectl logs <pod-name>

您的部署可能出了点问题。检查部署。

kubectl get deployments

描述部署(如上面的 pod),查找错误。

在您提供更多信息之前,我们无法真正帮助您。到目前为止,您进行了哪些调试尝试?显示了哪些错误,您在哪里看到它们?尝试创建 pod 时实际发生的情况。

kubectl 获取/描述/记录所有内容,让我们知道实际发生了什么。

这是一个很好的起点:

Troubleshoot clusters Kubectl command cheatsheet

编辑:在 Azure 门户中添加了故障排除图片(在下面的 cmets 中提到)

【讨论】:

kubectl get pods --all-namespaces -o wide 我没有看到任何有关部署的同行。这是在没有任何 pod 的情况下创建部署的问题。检查更新问题 我可以看到对等方的部署,但看不到 pod 你能澄清最后的评论吗?当您运行 get deployments 时,您正在搜索的部署在列表中还是不存在?如果你运行kubectl rollout status &lt;deployment-name&gt; 会怎样。 如果您要部署的部署已正确编写和应用,您应该会看到至少尝试创建自己的 pod。我们会在列表中看到它们,并且至少能够看到错误。部署本身似乎有些不正确。检查您正在部署的 yaml 是否有错误。手动将此 yaml 应用到您的集群并 (kubectl apply) 检查结果。 get deployments 返回什么?描述?豆荚看起来像什么?他们现在在吗? 还有!转到 Azure 门户。转到有问题的资源组。检查“活动”选项卡中的事件。这里有错误吗?此外,在左上角的概览选项卡下,您应该有一个指向“部署”的链接。也检查这个是否有错误。您的失败部署应在此处列出,它可以告诉您出了什么问题。【参考方案2】:

kube-apiserver(k8s 主平面组件)负责为您的 API 请求提供服务,例如:kubectl create ..kubectl scale ... 现在将这些 kubernetes 资源的状态实际维护到所需状态是kube-controller-manager(另一个 k8s 主平面组件)的工作。 此外,将这些资源调度到节点是 kube-scheduler(另一个 k8s 主平面组件)的工作。

上述信息并假设(我认为)您正在使用托管 Kubernetes,因此上述组件由您的云提供商管理。但是根据我的(本地 kubernetes)经验,我可以说,如果您的部署命令正确执行,则意味着 kube-apiserver 工作正常,但 kube-controller 工作不正常。此外,如果 pod 出现但卡在创建状态,那么这是 kube-scheduler 的问题,它没有完成它的工作。

总而言之,kube-controller和kube-scheduler的日志值得查看。

【讨论】:

我们正在使用牧场主。有时我们会收到诸如控制器管理器不健康的警报 @PankajCheema 当控制器管理器不健康时,将发生以下情况(例如):您的命令 kubectl create/scale/.. .. 将成功执行,但您的资源(工作负载/pod)不会实际创建或扩展。跨度> 【参考方案3】:

我在 Mac 上使用“Docker Desktop”时遇到了类似的情况,并通过增加“Docker Desktop Preferences”中的 Docker 资源来克服...

所以,请尝试增加您的 Kubernetes 集群资源。

【讨论】:

Kubernetes 中的网络策略问题

】Kubernetes中的网络策略问题【英文标题】:Issuewithnetworkpoliciesinkubernetes【发布时间】:2020-08-2400:56:22【问题描述】:创建一个命名空间取证取证命名空间内的所有pod都不能与外界通信(出口隔离)在默认命名空间中创建一个名... 查看详情

如何在 kubernetes Jobs 中创建 init 容器?

】如何在kubernetesJobs中创建init容器?【英文标题】:HowtocreateinitcontainerinkubernetesJobs?【发布时间】:2020-08-0604:18:26【问题描述】:在job.yaml下面用于创建工作。未创建初始化容器。[root@app]#kubectl版本客户端版本:version.InfoMajor:"1",M... 查看详情

pods和nodes

参考技术AKubernetesPods当你在模块2中创建一个Deployment的时候,Kubernetes创建了一个Pod来放置你的应用实例。Pod是Kubernetes中的一个抽象概念,一个Pod包含了一组应用容器(比如Docker或者rkt)和这些容器共用的资源。这些资源包括:Po... 查看详情

Kubernetes OOM pod 被杀死,因为内核内存增长太多

】KubernetesOOMpod被杀死,因为内核内存增长太多【英文标题】:KubernetesOOMpodkilledbecausekernelmemorygrowstomuch【发布时间】:2019-05-1402:22:11【问题描述】:我正在开发一个java服务,它基本上在网络文件系统中创建文件来存储数据。它在... 查看详情

kubernetes网络策略,允许访问特定ip

】kubernetes网络策略,允许访问特定ip【英文标题】:kubernetesnetworkpolicies,allowaccesstoaspecificip【发布时间】:2020-10-0602:20:38【问题描述】:我有以下任务要执行创建一个名为forensics的命名空间取证命名空间内的所有pod都不应与外界... 查看详情

用户“system:anonymous”无法在命名空间“default”的 API 组“”中创建资源“pods”

...户“system:anonymous”无法在命名空间“default”的API组“”中创建资源“pods”【英文标题】:User"system:anonymous"cannotcreateresource"pods"inAPIgroup""inthenamespace"default"【发布时间】:2019-10-2209:27:14【问题描述】... 查看详情

访问在 kubernetes 集群中创建的微服务 (Laravel/Lumen PHP)

】访问在kubernetes集群中创建的微服务(Laravel/LumenPHP)【英文标题】:Accessingamicroservicecreatedinsideakubernetescluster(Laravel/LumenPHP)【发布时间】:2021-08-0807:00:07【问题描述】:我在理解和让它发挥作用时遇到了一些麻烦。所以基本上我已... 查看详情

在 K3s Kubernetes 中创建 NFS 共享的链接

】在K3sKubernetes中创建NFS共享的链接【英文标题】:CreatingalinktoanNFSshareinK3sKubernetes【发布时间】:2020-10-0422:24:16【问题描述】:我对Kubernetes很陌生,并试图让node-red在一个小的树莓派集群上运行我很高兴地做到了这一点,但注意... 查看详情

有没有办法访问 Istio 在 GKE 中创建的 promsd 服务?

】有没有办法访问Istio在GKE中创建的promsd服务?【英文标题】:IsthereawayaccessthepromsdservicecreatedbyIstioinGKE?【发布时间】:2020-05-2020:38:38【问题描述】:我想从集群中的另一个pod访问由Istio运行的Prometheus服务。在我使用Kind的本地开... 查看详情

如何使用 RBAC API 在 Kubernetes 中创建受限于命名空间的用户/组?

】如何使用RBACAPI在Kubernetes中创建受限于命名空间的用户/组?【英文标题】:Howtocreateusers/groupsrestrictedtonamespaceinKubernetesusingRBACAPI?【发布时间】:2017-05-0915:07:30【问题描述】:问题我想向dev组内的许多不同的开发人员(不同的主... 查看详情

无法在 Kubernetes 集群中执行 GitLab Runner:无法在命名空间“gitlab”中的 API 组“”中创建资源“秘密”

】无法在Kubernetes集群中执行GitLabRunner:无法在命名空间“gitlab”中的API组“”中创建资源“秘密”【英文标题】:NotabletoexecuteGitLabRunnerinKubernetescluster:cannotcreateresource"secrets"inAPIgroup""inthenamespace"gitlab"【发... 查看详情

有没有办法在 kubernetes 部署(或 statefulset)中为每个 pod 创建一个持久卷?

】有没有办法在kubernetes部署(或statefulset)中为每个pod创建一个持久卷?【英文标题】:Isthereawaytocreateapersistentvolumeperpodinakubernetesdeployment(orstatefulset)?【发布时间】:2019-04-2308:30:22【问题描述】:我目前正在创建一个kubernetes部... 查看详情

如何在 kubernetes 中使用 yaml 文件删除和重新创建 pod

】如何在kubernetes中使用yaml文件删除和重新创建pod【英文标题】:Howtodeleteandrecreatepodsusingyamlfileinkubernetes【发布时间】:2018-08-1723:34:36【问题描述】:我有一个yaml文件,可用于创建pod。我正在使用仪表板,所以我可以简单地选择... 查看详情

如何使用heredoc在k8s pod yaml定义中创建yaml文件?

】如何使用heredoc在k8spodyaml定义中创建yaml文件?【英文标题】:Howtouseheredoctocreateayamlfileink8spodyamldefinition?【发布时间】:2021-12-0913:36:15【问题描述】:我想在k8spod启动后创建一个yaml,在我之前的尝试中,我只是上传yaml文件并使... 查看详情

没有 pod 指标的 Kubernetes

】没有pod指标的Kubernetes【英文标题】:Kuberneteswithoutpodmetrics【发布时间】:2020-05-2221:05:38【问题描述】:我正在尝试将指标部署到Kubernetes,但发生了一些非常奇怪的事情,我有一个工人和一个主人。我有以下pod列表:NAMESPACENAME... 查看详情

kubernetes第七篇:pod进阶controller进阶resource和dashboard(代码片段)

文章目录一、前言二、Pod进阶学习之路2.1Pod的生命周期Lifecycle2.2Pod的重启策略RestartPolicy2.3静态Pod2.4Pod的健康检查2.5ConfigMap2.5.1ConfigMap的创建创建方式1:命令行创建configmap创建方式2:根据配置文件中创建configmap创建方式3&#... 查看详情

8.k8s资源部署

参考技术A很少在Kubernetes中直接创建一个Pod,甚至是单实例(Singleton)的Pod。这是因为Pod被设计成了相对临时性的、用后即抛的一次性实体,不支持高可用。一般使用工作负载资源来创建和管理多个Pod。资源的控制器能够处理副... 查看详情

terraform-kubernetes-provider 如何从文件中创建秘密?

】terraform-kubernetes-provider如何从文件中创建秘密?【英文标题】:terraform-kubernetes-providerhowtocreatesecretfromfile?【发布时间】:2019-08-1601:38:11【问题描述】:我正在使用terraformkubernetes-provider,我想将类似kubectl的命令翻译成TF:kubectlc... 查看详情