准备完整的写一套关于kubernets的详细学习介绍。就先从pod开始吧。

pod是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。pod简单来说就是docker中共享空间的一组容器,它本身基于linux namespace和cgroup隔离。一般我们很少单独去创建一个pod,都是通过负载资源去创建的,例如

具体我就不详细介绍回头再写,下面我们来写一个最简单的pod.yaml

apiVersion: batch/v1
kind: Job
metadata:
name: hello
spec:
template:
# 这里是 Pod 模版
spec:
containers:
- name: hello
image: busybox
command: ['sh', '-c', 'echo "Hello, Kubernetes!" && sleep 3600']
restartPolicy: OnFailure

PS:快速获取一个yaml文件,比如获取一个nginx的pod,可以执行如下:

kubectl run nginx --image=nginx --dry-run -o yaml

接着讲如果pod里面要使用变量怎么做呢?

很简单,只需要在spec下面添加env,例如这样:

env: 
- name: DEMOx
value:"Hello x sir"
- name: DEMOy
value:"Hello y si

我们还发现yaml里面总有restartPolicy这个参数,其实restartPolicy包含了以下三个:Always 总是重启 OnFailure 失败了才重启 Never 从不重启。

那么久需要说到容器的状态了,含义如下:

Pending:pod已经建立,但是pod里还有容器没有创建完成 
Running :pod已经被调度到节点上,且容器工作正常
Completed :pod里所有容器正常退出
Failed:顾名思义

初始化容器的概念 比如一个容器A依赖其他容器,可以为A设置多个 依赖容易A1,A2,A3 A1,A2,A3要按照顺序启动,A1没有启动启动起来的 话,A2,A3是不会启动的,直到所有的静态容器全 部启动完毕,主容器A才会启动。 如果初始化容器失败,则会一直重启,pod不会创建。具体initpod太细的就不讲了。