Leif160519的blog Leif160519的blog

——————

目录
kubernetes Init Container与静态Pod简介
/    

kubernetes Init Container与静态Pod简介

一、Pod概念了解

  • 最小部署单元
  • 一组容器的集合
  • 一个Pod中的容器共享网络命名空间
  • Pod是短暂的

二、Pod存在的意义

Pod为亲密性应用而存在
亲密性应用场景;

  • 两个应用之间发生文件交互
  • 两个应用需要通过127.0.0.1或者socket通信(典型组合:nginx+php)
  • 两个应用需要发生频繁的调用

三、容器的分类

  • Infrastructure Container:基础容器:维护整个Pod网络空间
  • InitContainers:初始化容器:先于业务容器开始执行
  • Containers:业务容器:并行启动

四、Init Container

  • 基本支持所有普通容器特征
  • 优先普通容器执行

应用场景:

  • 控制普通容器启动(例如检测db是否启动来控制web的启动)
  • 初始化配置:
    a. 生成主应用程序配置文件
    b. 从git拉取代码让主业务容器使用
    c. 根据指定环境修改应用配置文件,例如连接的数据库

init产生的初始化配置,也是需要借助网络命名空间或者文件系统让主业务容器去使用

yaml示例:

apiVersion: v1
kind: Pod
metadata:
  name: init-demo
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80
    volumeMounts:
    - name: workdir
      mountPath: /usr/share/nginx/html
  initContainers:
  - name: install
    image: busybox
    command:
    - wget
    - "-O"
    - "/work-dir/index.html"
    - http://kubernetes.io
    volumeMounts:
    - name: workdir
      mountPath: "/work-dir"
  dnsPolicy: Default
  volumes:
  - name: workdir
    emptyDir: {}

可以在空卷的挂载目录下查看到index.html内容。

五、静态Pod

静态Pod指的是固定在某个Node上,有kubelet管理生成的一种Pod

静态Pod的工作目录:/etc/kubernetes/manifests/,里面默认有etcd.yaml, kube-apiserver.yaml ,kube-controller-manager.yaml ,kube-scheduler.yaml这几个pod,若想在某个节点上跑静态pod,只需要在该node节点上的静态pod工作目录下放yaml文件即可,若想删除该静态pod,则需要删除静态pod工作目录下的yaml即可。静态pod运行的名称后面就会跟有节点名称:

image.png

若想更改工作目录,则需要去/var/lib/kubelet/config.yaml修改配置,将staticPodPath后面的路径改为其他,重启kubelet服务即可生效

静态pod特点:

  • 由特定节点上kubelet管理
  • 没有任何控制器
  • pod挂了,kubelet自动拉起
  • kubelet定期检查staticPodPath状态

yaml示例:

apiVersion: v1
kind: Pod
metadata:
  name: static-pod
spec:
  containers:
  - name: web
    image: nginx
    ports:
    - name: web
      containerPort: 80

“The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.” – Tom Cargill

标  题kubernetes Init Container与静态Pod简介
作  者Leif160519
出  处https://github.icu/articles/2020/06/12/1591923730103.html
关于博主:坐标南京,运维工程师,如有问题探讨可以直接下方留言。
声援博主:如果您觉得文章对您有帮助,可以评论、订阅、收藏。您的鼓励是博主的最大动力!