Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。Pod(就像在鲸鱼荚或者豌豆荚中)是一组(一个或多个)容器; 这些容器共享存储、网络、以及怎样运行这些容器的声明。 Pod 中的内容总是并置(colocated)的并且一同调度,在共享的上下文中运行。简言之如果用 Docker 的术语来描述,Pod 类似于共享名字空间并共享文件系统卷的一组容器。
定义
定义: Pod 就是用来管理一组(一个|多个)容器的集合 特点: 共享网络 共享存储 共享上下文环境
Pod 中的容器被自动安排到集群中的同一物理机或虚拟机上,并可以一起进行调度。 容器之间可以共享资源和依赖、彼此通信、协调何时以及何种方式终止自身。例如,你可能有一个容器,为共享卷中的文件提供 Web 服务器支持,以及一个单独的 "边车 (sidercar)" 容器负责从远端更新这些文件,如下图所示:
通常你不需要直接创建 Pod,甚至单实例 Pod。 相反,你会使用诸如 Deployment 或 Job 这类工作负载资源来创建 Pod。 如果 Pod 需要跟踪状态,可以考虑 StatefulSet 资源。
Kubernetes 集群中的 Pod 主要有两种用法:
说明:
shell#查看所有的命名空间
kubectl get po -A
shell#查看默认的命名空间
kubectl get po
shell#查看详细的命名空间
kubectl get pod -o wide -n kube-system
js#查看所有pod的命名空间详细信息 kubectl get po -o wide -A
js#-w 监控 kubectl get po -o wide -A
js服务器1:192.168.24.128
服务器2:192.168.24.129
服务器3:192.168.24.130
jsvi /etc/hosts
js
192.168.24.128 songxuan001
192.168.24.129 songxuan002
jsservice firewalld stop
jsswapoff -a
jsvim /etc/fstab # 注释 swap 行
jsyum install ntpdate -t
jsntpdate -u ntp.aliyun.com
jsyum install -y yum-utils device-mapper-persistent-data lvm2
jsyum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装containerd
jsyum install -y containerd.io cri-tools
配置containerd
jscat > /etc/containerd/config.toml <<EOF
disabled_plugins = ["restart"]
[plugins.linux]
shim_debug = true
[plugins.cri.registry.mirrors."docker.io"]
endpoint = ["https://frz7i079.mirror.aliyuncs.com"]
[plugins.cri]
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.2"
EOF
ymlversion:"3.0"
services:
app:
bulid:./ #默认指定dockerfile上下文目录
或
ymlversion:"3.0"
services:
app:
bulid:
context:./
dockerfile::xxx #指定项目名称
ymlversion:"3.0"
services:
tomcat:
image:tomcat:8.0
ports:
- "8080:8080"
app:
bulid:./ #默认指定dockerfile上下文目录
depends_on:
-tomcat #依赖服务,得先启动了tomcat,该服务才会启动。
ymlversion:"3.0"
services:
mysql:
image:mysql:5.6
ports:
- "3306:3306"
#environment: #指定环境
# - "MYSQL_ROOT_PASSWORD=123456"
env_file:
- ./.env
注意
为了保护隐秘性,env_file去会去找上下文目录的.env文件,env文件内正常写: MYSQL_ROOT_PASSWORD=123456
bashcurl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
jschmod 777 /usr/local/bin/docker-compose
ymlversion:"3.0"
services:
tomcat:
#container_name:tomcat01 #指定一个名称 不推荐使用
image:tomcat:8.0 #代表使用哪个镜像。
ports: #映射端口号。
- 8080:8080
mysql:
image:mysql:5.6
ports:
- "3306:3306"
environment: #指定环境
- "MYSQL_ROOT_PASSWORD=123456"
volumes: #数据卷
# - /root/test:/var/lib/mysql #绝对路径方式,但需要提前创建好挂载目录。
- mysqldata:/var/lib/mysql #别名挂载,需要去声明数据卷别名。
volumes:
mysqldata: #生命数据卷别名