k8s核心四资源对象
Namespace: 名称空间,一般用来隔离容器,提高控制性和安全性;
namespace仅用于资源对象的隔离,并不能隔绝不同名称空间的Pod之间的通信,那是网络策略资源的功能。
例如:财务部的软件及数据十分重要不能和其他资源放在一起,可用此隔离,既方便查找管理,也与其他项目资源分开,更安全!
Deployment: 最常见的无状态应用的控制器,支持应用的扩缩容、滚动更新等操作。
Servcie: 为弹性变动且存在生命周期的Pod对象提供了一个固定的访问接口,用于服务发现和服务访问。
Pod: 是运行容器以及调度的最小单位。同一个Pod可以同时运行多个容器,这些容器共享NET、UTS、IPC。除此之外还有 USER、PID、MOUNT
增查
初级
1、创建Namespace
查看
使用yaml文件创建pod,并在其中创建两个容器
1)创建yaml文件vim xtrabackup.yaml
kind: Pod
apiVersion: v1
metadata:
name: test-pod
namespace: xtrabackup
spec:
containers:
- name: test-app
image: httpd
- name: test-web
image: busybox
2)调用yaml文件创建
查看
也可用命令查看详情
kubectl describe pod test-pod -n xtrabackup
中级
修改yaml文件,添加镜像下载策略
k8s默认根据镜像的TAG的不同,有3中不同策略。
Always: 镜像标签为"latest"或镜像标签不存在时,总是从指定的仓库(默认的官方仓库、或者私有仓库)中获取最新镜像。
IfNotPresent:仅当本地镜像不存在时才从目标仓库中下载。也就意味着,如果本地存在,直接使用本地镜像,无需再联网下载。
Never: 禁止从仓库中下载镜像,即只使用本地镜像。
对于标签为“latest”或者这标签不存在,其默认镜像下载策略为“Always”,而对于其他标签的镜像,默认则使用了“IfNotPresent”.
上述语句中提到的"本地"是指: docker images命令能够给查看到的镜像。
1)创建yaml文件
vim xtrabackup.yaml
kind: Pod
apiVersion: v1
metadata:
name: test-pod
namespace: xtrabackup
spec:
containers:
- name: test-app
image: httpd
imagePullPolicy: IfNotPresent
- name: test-web
image: busybox
imagePullPolicy: IfNotPresent
2)执行:kubectl apply -f xtrabackup.yaml
3)查看
提示:一个pod可以承载多个容器,但是端口不可冲突,ready 1/2表示一个因为冲突未启动成功。
查看详情:提示本地机器已经存在busybox,则会执行策略,不去远程镜像仓库下载。
kubectl describe pod test-pod -n xtrabackup
删
2、 删除名称空间下的所有pod