[DAY4]K8S里面的小小兵-POD


图片来源
我们可以从上面的架构图清楚看出,POD是K8S中最小可被部署的构物

图片来源
一个k8s cluster可以有多个Node,一个Node里面有多个POD,一个POD有多个CONTAINER可以运行。
以VM的角度来看,NODE=VM HOST机,POD就是VM。

特点

  • 一个POD可以同时执行多个CONTAINER,多个CONTAINER又可以共用资源或是volumn
  • POD中多个CONTAINER共享此网路,可以透过localhost跟port号进行连接,像是POD里面跑application+redis时就可以直接透过LOCALHOST + 6379 port连接redis

pod & controller

controller设定上就是来调度POD,主要的特点

  • 管理 pods
  • 副本管理
  • 当node资源不足时,会把pod调度至另一个node上
  • pod失效时会自动建立新的pod并将失效的pod终止掉

pod manifest档

pod manifest档可以是JSON也可以是YAML,目前大部份还是以YAML为主,所以後续说明都以YAML为主。
YAML档上面会有主键栏位跟对应的属性,主要是要来描述POD的中继资料、标签(LABEL),磁碟(VOLUMN)跟要RUN哪一些CONTAINER。
官网的YAML为例
可以很清楚的知道这个pod 名称叫static-web,它被贴上一个叫role=myrole的label,它的container跑的是nginx

apiVersion: v1
kind: Pod
metadata:
  name: static-web
  labels:
    role: myrole
spec:
  containers:
    - name: web
      image: nginx
      ports:
        - name: web
          containerPort: 80
          protocol: TCP

把建立好的yaml档透过KUBECTL APPLY的语法,可以把yaml档送到k8s api server,K8S就会选择一个最适合的node运行pod。

kubectl apply -f static-web.yaml

pod 状态

当使用get pods 可以看到目前运行中的POD与其状态

  • READY : 就绪的container数量,正常来说应该是对应的
  • SATAUS : POD的目前执行状态,有Waiting (等待),Running(执行中),Terminated(已终止)
  • RESTARTS : POD 重启次数,当POD异常终止时,K8S的self healthing就会自行重启pod,这时的RESTARTS次数就会增加
  • AGE : 建立到现在过多久时间
kubectl get podsRESTARTS
NAME    READY   SATAUS   RESTARTS  AGE
static  1/1     Runing   0         5m

POD的细节很多,可以继续研究下去,後续有机会再继续补完下去


<<:  个人管理 - 工作细节拆分

>>:  Day4-丛集是在集这个 Node介绍

[想试试看JavaScript ] 为什麽需要这麽多种注册事件处理的方式

为什麽需要这麽多种注册事件处理的方式? 上一篇提到注册事件的方式有三种 1.HTML 属性 2.DO...

第15章:管理与设定网路介绍(二)

前言 本章节,是要讲述如何查看网路设定与设定在主机上的网路资讯。 识别与取得网路介面资讯 在一台主机...

Day 18: Behavioral patterns - Chain of Responsibility

目的 当一个行为需要经过多道步骤时,可以将步骤串在一起。 说明 该模式常见於两种情境: 行为不一定一...

Day 31 - 使用 Amazon API Gateway 上传图片到 S3

Day 31 - 使用 Amazon API Gateway 上传图片到 S3 建立 S3 储存贮体...

【把玩Azure DevOps】Day26 YAML格式以外的Pipeline传统编辑器(Classic Editor)

先前在「CI/CD从这里:设定第一个Pipeline(范本与编辑介面介绍)」这篇文章内容建立Pipe...