![b15507a1a3df410504f32323e3702e57.png](https://img-blog.csdnimg.cn/img_convert/b15507a1a3df410504f32323e3702e57.png)
1 Pod - 实例
Pod是一组紧密关联的容器集合,支持多个容器在一个Pod中共享网络和文件系统,可以通过进程间通信和文件共享这种简单高效的方式完成服务,是Kubernetes调度的基本单位。Pod的设计理念是 每个Pod都有一个唯一的IP
Pod具有如下特征:
- 包含多个共享IPC、Network和UTC namespace的容器,可直接通过localhost通信
- 所有Pod内容器都可以访问共享的Volume,可以访问共享数据
- 优雅终止:Pod删除的时候先给其内的进程发送SIGTERM,等待一段时间(grace period)后才强制停止依然还在运行的进程
- 特权容器(通过SecurityContext配置)具有改变系统配置的权限(在网络插件中大量应用)
- 支持三种重启策略(restartPolicy),分别是:Always、OnFailure、Never
- 支持三种镜像拉取策略(imagePullPolicy),分别是:Always、Never、IfNotPresent
- 资源限制,Kubernetes通过CGroup限制容器的CPU以及内存等资源,可以设置request以及limit值
- 健康检查,提供两种健康检查探针,分别是livenessProbe和redinessProbe,前者用于探测容器是否存活,如果探测失败,则根据重启策略进行重启操作,后者用于检查容器状态是否正常,如果检查容器状态不正常,则请求不会到达该Pod
- Init container在所有容器运行之前执行,常用来初始化配置
- 容器生命周期钩子函数,用于监听容器生命周期的特定事件,并在事件发生时执行已注册的回调函数,支持两种钩子函数:postStart和preStop,前者是在容器启动后执行,后者是在容器停止前执行
2 Namespace - 命名空间
Namespace(命名空间)是对一组资源和对象的抽象集合,比如可以用来将系统内部的对象划分为不同的项目组或者用户组。常见的pod、service、replicaSet和deployment等都是属于某一个namespace的(默认是default),而node, persistentVolumes等则不属于任何namespace。
常用namespace操作:
# 查询所有namespaces
kubectl get namespace
# 创建namespace
kubectl create