Kubernetes的基本概念和术语-pod
1、POD
Pod都有一个特殊的被称为“根容器”的Pause容器。每个POD包含多个用户业务容器。
apiVersion: v1 kind: Pod metadata: name: myweb #POD名称。 lables: name: myweb #name=myweb的标签 spec: #容器组的定义 containers: - name: myweb #容器名称。 image: kubeguide/tomcat-app:v1 #镜像。 ports: - containerPort: 8080 #容器的端口。IP加端口就是Endpoint,就是一个服务进程的对外通信地址。 #一个pod可以有多个Endpoint。 env: - name: MYSQL_SERVICE_HOST #环境变量 value: 'mysql' - name: MYSQL_SERVICE_PORT #环境变量 value: '3306'
Docker Volume在Kubernetes里也有对应的概念—Pod Volume,后者有一些扩展,比如可以用分布式文件系统GlusterFS实现后端存储功能;Pod Volume是被定义在Pod上,然后被各个容器挂载到自己的文件系统中的
Event是一个事件的记录,记录了事件的最早产生时间、最后重现时间、重复次数、发起者、类型,以及导致此事件的原因等众多信息。Event通常会被关联到某个具体的资源对象上,是排查故障的重要参考信息,
可以用kubectl describe pod xxxx来查看它的描述信息
每个Pod都可以对其能使用的服务器上的计算资源设置限额,当前可以设置限额的计算资源有CPU与Memory两种,其中CPU的资源单位为CPU(Core)的数量,是一个绝对值而非相对值。通常以千分之一的CPU配额为最小单位,用m来表示。通常一个容器的CPU配额被定义为100~300m,即占用0.1~0.3个CPU
计算资源进行配额限定时需要设定以下两个参数
- Requests:该资源的最小申请量,系统必须满足要求。
- Limits:该资源最大允许使用的量,不能被突破,当容器试图使用超过这个量的资源时,可能会被Kubernetes“杀掉”并重启。
- Requests设置为一个较小的数值,符合容器平时的工作负载情况下的资源需求,而把Limit设置为峰值负载情况下资源占用的最大量。
sepc: containers: - name: db image: mysql resources: requests: memory: "64Mi" cpu: "250m" limits: memory: "128Mi" cpu: "500m"