Kubernetes中的运行吊舱和容器

Kubernetes中的运行吊舱和容器,kubernetes,Kubernetes,我对Kubernates还比较陌生,目前为止我能理解的是 集群是节点的集合 每个节点都可以有一组正在运行的容器 一组紧密耦合的容器本身可以组合在一起形成一个pod,而不管容器运行在哪个节点上。 首先,到目前为止我说的对吗 第二,通过有关的文档 控制平面组件,用于监视新创建的没有指定节点的吊舱,并为其选择要在其上运行的节点 医生还说 最小最简单的库伯内特斯物体。Pod表示集群上一组正在运行的容器 我的问题是,相当混乱的是,既然我们已经在不同的节点上运行了容器,为什么我们需要额外的节点来运行pod呢

我对Kubernates还比较陌生,目前为止我能理解的是

集群是节点的集合 每个节点都可以有一组正在运行的容器 一组紧密耦合的容器本身可以组合在一起形成一个pod,而不管容器运行在哪个节点上。 首先,到目前为止我说的对吗

第二,通过有关的文档

控制平面组件,用于监视新创建的没有指定节点的吊舱,并为其选择要在其上运行的节点

医生还说

最小最简单的库伯内特斯物体。Pod表示集群上一组正在运行的容器

我的问题是,相当混乱的是,既然我们已经在不同的节点上运行了容器,为什么我们需要额外的节点来运行pod呢

集群是节点的集合

每个节点都可以有一组正在运行的容器

你说得对

一组紧密耦合的容器本身可以组合在一起形成一个pod,而不管容器运行在哪个节点上。 属于pod的所有容器都在同一节点上运行

我的问题是,相当混乱的是,我们已经有了集装箱 在不同的节点中运行,为什么我们需要额外的节点来运行 开吊舱

实际运行的不是吊舱。在节点上实际运行的只有容器。Pod只是容器的逻辑分组,是kubernetes中创建容器的基本单元。Docker集装箱标志是一条鲸鱼,如果你想记住这一点的话,请记住。因此,如果属于pod的容器正在运行,则pod被称为正在运行

在下面的pod规范中,nginx容器和debian容器属于名为两个容器的pod。创建此pod对象时,kube scheduler将选择一个节点来运行此pod,即运行两个容器并为pod分配一个节点。然后,在该节点上运行的kubelet会收到通知并启动该节点上的两个容器。因为这两个容器属于同一个pod,所以它们在相同的网络名称空间中运行

apiVersion: v1
kind: Pod
metadata:
  name: two-containers
spec:

  restartPolicy: Never

  volumes:
  - name: shared-data
    emptyDir: {}

  containers:

  - name: nginx-container
    image: nginx
    volumeMounts:
    - name: shared-data
      mountPath: /usr/share/nginx/html

  - name: debian-container
    image: debian
    volumeMounts:
    - name: shared-data
      mountPath: /pod-data
    command: ["/bin/sh"]
    args: ["-c", "echo Hello from the debian container > /pod-data/index.html"]
集群是节点的集合

每个节点都可以有一组正在运行的容器

你说得对

一组紧密耦合的容器本身可以组合在一起形成一个pod,而不管容器运行在哪个节点上。 属于pod的所有容器都在同一节点上运行

我的问题是,相当混乱的是,我们已经有了集装箱 在不同的节点中运行,为什么我们需要额外的节点来运行 开吊舱

实际运行的不是吊舱。在节点上实际运行的只有容器。Pod只是容器的逻辑分组,是kubernetes中创建容器的基本单元。Docker集装箱标志是一条鲸鱼,如果你想记住这一点的话,请记住。因此,如果属于pod的容器正在运行,则pod被称为正在运行

在下面的pod规范中,nginx容器和debian容器属于名为两个容器的pod。创建此pod对象时,kube scheduler将选择一个节点来运行此pod,即运行两个容器并为pod分配一个节点。然后,在该节点上运行的kubelet会收到通知并启动该节点上的两个容器。因为这两个容器属于同一个pod,所以它们在相同的网络名称空间中运行

apiVersion: v1
kind: Pod
metadata:
  name: two-containers
spec:

  restartPolicy: Never

  volumes:
  - name: shared-data
    emptyDir: {}

  containers:

  - name: nginx-container
    image: nginx
    volumeMounts:
    - name: shared-data
      mountPath: /usr/share/nginx/html

  - name: debian-container
    image: debian
    volumeMounts:
    - name: shared-data
      mountPath: /pod-data
    command: ["/bin/sh"]
    args: ["-c", "echo Hello from the debian container > /pod-data/index.html"]
数字1和3是正确的。 对于第2个,我会说‘每个节点可以有一个固定的pod,每个pod可以有一个或多个容器’

对于最后一个问题,假设您创建了一个部署,有3个pod,其中2个部署到了节点a,其中2个消耗了资源没有内存或cpu,但第3个pod将处于挂起状态,只要它们没有新的节点来运行该pod

它们是水平吊舱自动缩放和集群自动缩放的概念 & 这些将进一步消除您的困惑

数字1和3是正确的。 对于第2个,我会说‘每个节点可以有一个固定的pod,每个pod可以有一个或多个容器’

对于最后一个问题,假设您创建了一个部署,有3个pod,其中2个部署到了节点a,其中2个消耗了资源没有内存或cpu,但第3个pod将处于挂起状态,只要它们没有新的节点来运行该pod

它们是水平吊舱自动缩放和集群自动缩放的概念 &
这些将进一步消除您的困惑

谢谢Shashank。此外,单个节点是否可以有多个吊舱运行,这些吊舱可以由Kubernetes以某种方式配置?是的。单个节点可以有多个吊舱。到目前为止,默认情况下,单个节点上可以运行的最大POD数为110。这可以使用kubelet的maxPods和podsPerCore配置选项进行修改。一组鲸鱼被称为标记这些单词的pod:DThanks Shashank。同样,一个节点可以有多个吊舱运行,这些吊舱可以通过Kubernetes进行配置吗
对单个节点可以有多个吊舱。到目前为止,默认情况下,单个节点上可以运行的最大POD数为110。这可以使用kubelet的maxPods和podsPerCore配置选项进行修改