cat 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.7.9 ports: - containerPort: 80 |
kubectl get pods -l app=nginx
kubectl describe pod nginx-deployment-5754944d6c-9xgnc
滚动升级 1.7.9到1.8 修改yaml文件
kubectl apply -f nginx-deployment.yaml
kubectl get pods -l app=nginx
一个已经被替换完成
查看新pod的ip
kubectl describe pod nginx-deployment-6f655f5d99-fvtxw
重新请求 看到版本为1.8.1
在这个 Deployment 中尝试声明一个 Volume
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: {} |
kubectl apply -f nginx-deployment.yaml
kubectl describe pod nginx-deployment-6f859b4555-7db9v
可以使用 kubectl exec 指令,进入到这个 Pod 当中(即容器的 Namespace 中)查看这个 Volume 目录:
kubectl exec -it nginx-deployment-6f859b4555-7db9v -- /bin/bash
ls /usr/share/nginx/html
从 Kubernetes 集群中删除这个 Nginx Deployment 的话,直接执行
如果你想要快速熟悉 Kubernetes,请按照下面的流程进行练习:
- 首先,在本地通过 Docker 测试代码,制作镜像;
- 然后,选择合适的 Kubernetes API 对象,编写对应 YAML 文件(比如,Pod,Deployment);
- 最后,在 Kubernetes 上部署这个 YAML 文件。
更重要的是,在部署到 Kubernetes 之后,接下来的所有操作,要么通过 kubectl 来执行,要么通过修改 YAML 文件来实现,就尽量不要再碰 Docker 的命令行了。