k8s资源类型

集群部署的两种方式

  • Kubeadm部署工具,提供kubeadm init和kubeadm join,用于快速的部署k8s集群
  • 二进制包,手动部署每个组件,组成集群

Kubeadmin部署方式

  1. 创建一个Master节点,使用kubeadmin init
  2. 将Node节点加入到当前的集群当中,kubeadm join <master节点的IP和端口>

集群资源分类

  • 名称空间级别:各个命名空间之间是隔离的
  • 集群级别:资源被定义后在全集群都可以被看见
  • 元数据型:不属于名称空间级别和集群级别,通过某些指标进行操作(比如分析系统的cpu指标)

名称空间级别下资源

工作负载型资源: Pod、ReplicaSet、Deployment、StatefulSet、DaemonSet、Job\CronJob
服务发现型以及负载均衡资源: Service、Ingress
配置与存储资源:Volume、CSI(容器存储接口)
特殊类型的存储卷:ConfigMap(当配置中心来使用的资源类型)、Secret(保存敏感数据)、DownWardAPI(把外部环境中的信息输出给容器)

容器的生命周期

pod运行周期

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支持的三种检查方式:

  1. httpGet:发送http请求,返回200-400范围状态码为成功
  2. exec 执行shell命令返回状态码是0为成功
  3. 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的权限,而应用程序容器则不能。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值