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
在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐