在k8s中部署第一个应用
在k8s中部署第一个应用
1.编写应用配置文件
nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.8
ports:
- containerPort: 80
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: nginx-vol
volumes:
- name: nginx-vol
emptyDir: {}
这样一个yaml文件对应到k8s中就是一个API对象,这个API对象的类型是Deployment。Deployment是一个定义多副本应用(多个副本Pod)的对象,此外Deployment还负责在Pod定义发生变化时对每个副本进行滚动更新。在此例中Deployment扮演Pod的控制器角色。Deployment会把所有正在运行,携带spec.selector.matchLabels字段的值的Pod识别为其要管理的对象。spec.selector.matchLabels一般称为 Label Selector。
template是用来定义Pod的模板,此例中Pod中只有一个容器nginx:1.8,Pod是k8s世界里的"应用运行单元",而一个应用运行单元可以由多个Pod组成。
2.创建API对象
sudo kubectl create -f nginx-deployment.yaml
查看Pod状态:
kubectl get pods -l app=nginx
查看Pod 详情:
kubectl describe pod nginx-deployment-9754ccbdf-6tcqd
3.修改Api对象配置文件并应用
修改过后执行如下命令:
sudo kubectl apply -f nginx-deployment.yaml
4.删除Api对象
kubectl delete -f nginx-deployment.yaml