首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >库贝克尔得到部署,没有资源

库贝克尔得到部署,没有资源
EN

Stack Overflow用户
提问于 2020-05-07 15:43:41
回答 2查看 6.2K关注 0票数 1

我刚刚开始学习kubernetes,在每个教程中,作者通常使用"kubectl . deploymenst“来控制新创建的部署。现在,使用这些命令(例如kubectl get deploymets),我总是得到响应No resources found in default namespace.,我必须使用"pods"而不是“部署”来使事情正常工作(工作正常)。

现在我的问题是,是什么导致了这种情况,使用部署或吊舱有什么区别?我已经把码头司机安排在第一辆小货车里了,这跟这事有关吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-07 16:01:14

首先,让我们来复习一些术语。

Pod --它是Kubernetes的基本构造块。它使用共享存储/网络对一个或多个容器(例如Docker容器)进行分组,并对如何运行容器进行规范。

部署 -它是一个控制器,它封装Pod/s并管理其生命周期,也就是说,将实际状态转换为所需的状态。在部署和Pod之间还有一个层,即 ReplicaSet:ReplicaSet的目的是维护在任何给定时间运行的一组副本Pods。因此,它通常用于保证指定数量的相同Pods的可用性。下面是可视化的内容:

资料来源:我画的!

在你的例子中,可能发生的事情:

  1. 或者,您已经创建了一个Pod,而不是部署。因此,当您执行kubectl get deployment时,您看不到任何资源。注意,当您创建部署时,它依次为您创建一个ReplicaSet,并创建定义的吊舱。
  2. 可能是您在另一个名称空间中创建的部署,如果是这样的话,那么输入以下命令以找到您在名称空间kubectl get deploy NAME_OF_DEPLOYMENT -n NAME_OF_NAMESPACE中的部署

更多信息,以澄清您的概念:

来源位于spec.template内部的部分下面,如果您要手动创建它,而不是使用部署路由,那么这个部分应该是您的POD清单。现在,就像我前面所说的那样,部署是您的荚的包装器,因此您在路径spec.template之外看到的任何东西都是您需要定义的配置,您需要根据您想要管理的方式(缩放、关联等)来定义配置。

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
票数 9
EN

Stack Overflow用户

发布于 2020-05-07 15:47:31

部署是一个控制器,在豆荚和ReplicaSets之上提供了更高级别的抽象。部署为Pods和ReplicaSets提供声明性更新。部署在内部创建ReplicaSets,在其中创建吊舱。

部署用例被记录为这里

No resources found in default namespace的一个原因可能是您在特定的名称空间中而不是在默认的名称空间中创建了部署。

您可以通过以下方式看到特定命名空间或所有命名空间中的部署:

代码语言:javascript
复制
kubectl get deploy -n namespacename
kubectl get deploy -A
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61661977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档