kubernetes基础篇 —— Pod生命周期

    技术2023-08-04  98

    Pod生命周期

    Pod 可以包含多个容器,应用运行在这些容器里面,同时 Pod 也可以有一个或多个先于应用容器启动的 Init 容器 Init 容器与普通的容器非常像,区别是:

    Init 容器总是运行到完成Init 容器不支持 Readiness,因为它们必须在 Pod 就绪之前运行完成每个 Init 容器必须运行成功,下一个才能够运行

    如果 Pod 的 Init 容器失败,Kubernetes 会不断地重启该 Pod,直到 Init 容器成功为止。然而,如果 Pod 对应的 restartPolicy 值为 Never,它不会重新启动

    Init容器的作用:

    Init 容器可以包含一些安装过程中应用容器中不存在的实用工具或个性化代码Init 容器可以安全地运行这些工具,避免这些工具导致应用镜像的安全性降低应用镜像的创建者和部署者可以各自独立工作,而没有必要联合构建一个单独的应用镜像Init 容器能以不同于Pod内应用容器的文件系统视图运行。因此,Init容器可具有访问 Secrets 的权限,而应用容器不能够访问由于 Init 容器必须在应用容器启动之前运行完成,因此 Init 容器提供了一种机制来阻塞或延迟应用容器的启动,直到满足了一组先决条件。一旦前置条件满足,Pod内的所有的应用容器会并行启动 下载busybox镜像推送到私有harbor仓库 docker pull hub.c.163.com/library/busybox:latest # 从163镜像仓库中拉取镜像 docker tag hub.c.163.com/library/busybox:latest reg.harbor.com/library/busybox # 重命名镜像文件 docker push reg.harbor.com/library/busybox # 上传镜像到私有仓库 docker rmi hub.c.163.com/library/busybox:latest # 删除原名称镜像文件

    编辑yaml文件

    kubectl create -f demo2.yaml kubectl get -f demo2.yaml

    kubectl describe -f demo2.yaml

    kubectl create -f myservice.yaml kubectl get -f demo2.yaml

    初始化完成~

    Processed: 0.009, SQL: 9