Kubernetes基础之Pod的创建
正如前文基础概念所述,pod是Kubernetes最小的工作单元,其包含了需要共同协作的所有容器的最小单元集合。一个pod一般由一个以上的运行程序的image的容器组合而成,默认image下载路径为docker hub也可以本地进行自我配置。所有在pod中的容器共享pod的ip地址空间,即相同pod内的容器所有的ip地址相同而port不相同。pod的运行由Kubernetes中的master节点来统一调配,默认会分配到空闲的worker节点上,也可以通过label来指定到特定的worker节点上运行。
创建pod可以通过resources比如Deployment, StatefulSet以及DaemonSet来管理或者以单一yml来定义pod内容。
详细pod官方说明具体可查看 https://kubernetes.io/docs/concepts/workloads/pods
- 通过yml来定义pod内容
### kubectl create namespace web
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
namespace: web
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
command: ["nginx"]
args:
- -g
- daemon off;
- -q
ports:
- containerPort: 80
- 通过deployment来创建pod
使用命令行来创建Deployment
kubectl run nginx-deployment --image=nginx --replicas=2
使用yml来配置Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
namespace: web
labels:
deployment: nginx-deployment
spec:
replicas: 2
selector:
matchLabels:
deployment: nginx
template:
metadata:
labels:
deployment: nginx
spec:
containers:
- name: nginx
image: nginx
command: ["nginx"]
args: ["-g", "daemon off;", "-q"]
ports:
- containerPort: 80
以上为快速创建pod的方法