k8s资源类型
集群资源分类名称空间级别:各个命名空间之间是隔离的集群级别:资源被定义后在全集群都可以被看见元数据型:不属于名称空间级别和集群级别,通过某些指标进行操作(比如分析系统的cpu指标)名称空间级别下资源工作负载型资源: Pod、ReplicaSet、Deployment、StatefulSet、DaemonSet、Job\CronJob服务发现型以及负载均衡资源: Service、Ingress配置与
·
集群部署的两种方式
- Kubeadm部署工具,提供kubeadm init和kubeadm join,用于快速的部署k8s集群
- 二进制包,手动部署每个组件,组成集群
Kubeadmin部署方式
- 创建一个Master节点,使用kubeadmin init
- 将Node节点加入到当前的集群当中,kubeadm join <master节点的IP和端口>
集群资源分类
- 名称空间级别:各个命名空间之间是隔离的
- 集群级别:资源被定义后在全集群都可以被看见
- 元数据型:不属于名称空间级别和集群级别,通过某些指标进行操作(比如分析系统的cpu指标)
名称空间级别下资源
工作负载型资源: Pod、ReplicaSet、Deployment、StatefulSet、DaemonSet、Job\CronJob
服务发现型以及负载均衡资源: Service、Ingress
配置与存储资源:Volume、CSI(容器存储接口)
特殊类型的存储卷:ConfigMap(当配置中心来使用的资源类型)、Secret(保存敏感数据)、DownWardAPI(把外部环境中的信息输出给容器)
容器的生命周期
pod的生命周期
- init C:初始化容器阶段,只是用于初始化的一个程序,并不会一直伴随着pod程序的运行,初始化完成之后init C 就会退,在数量上≥0,在同一时间只有一个initC程序在运行,一个initC程序结束之后才会执行下一个init C程序。在这个阶段就已经会创建pause容器
- Main C:主容器,在容器运行之前执行START操作,结束之后会执行Stop操作
- Readiness:就绪检测,查看当前的容器是否能被集群的外面所使用,
- liveness:生存检测
pod的健康检查
livenessProbe(存活检查): 如果检查失败就会杀死容器,根据pod的重启策略来执行接下来的操作
readinessProbe(就绪检查):如果检查失败,k8s会把pod从service endpoints中剔除
Probe支持的三种检查方式:
- httpGet:发送http请求,返回200-400范围状态码为成功
- exec 执行shell命令返回状态码是0为成功
- tcpSocket:发起Tcp Socket建立成功
apiVersion: V1
kind: Pod
metadata:
labels:
test: liveness
name: liveness-exec
spec:
containers:
- name: liveness
image: busybox
- args:
- /bin/sh
- -c
- touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy
#livenessProbe项用于配置健康检查
livenessProbe:
exec:
command:
- cat
- /tmp/healthy
initialDelaySeconds: 5
periodSeconds: 5
init C
- init c包含和运行很多实用的工具,但是出于安全和冗余方面的考虑,不建议在应用程序镜像中包含这些实用工具。
- 应用程序镜像可以分离出创建和部署的角色,而没有必要联合它们构建一个单独的镜像,创建程序的部分可以放在init C去完成
- Init 容器实用Linux Namespace所以相对应用程序容器来说具有不同的文件系统视图。因此他们可以具备访问Secret的权限,而应用程序容器则不能。
更多推荐
已为社区贡献2条内容
所有评论(0)