一。Kubernetes架构
二。重要的几个概念
1.Pod:最小单元
1.1 一个Pod里可以有多个Container
1.2这些container共享这个pod的同一个网络地址,同一个文件系统,通过127.0.0.1互访等
1.3彼此间访问速度快,而且生命周期是同步的
2.service:
3.label:
4.deployment:
4.1 创建副本,取代了rc
4.2 整合了灰度发布,暂停,恢复发布
4.3 整合了故障自愈
4.4 新增了回滚
。。。
deployment --> replicaset --> pod
三。安装
四。使用
(一) 创建deployment及pod
1. 创建一个deployment:
kubectl run nginx --image=nginx:1.11.4-alpine
2. 删除一个deployment:
kubectl delete deployment nginx
3. 查看创建的deployment:
kubectl get deployment nginx
4. 查看deployment的详细信息
kubectl describe deployment nginx
5. 查看pod:
kubectl get pod
kubectl get pod -o wide
6. 查看pod日志
kubectl logs xxx
7.进入pod里查看
kubectl exec -it xxx /bin/bash
(二) 创建service
方法一:
1. touch nginx.svc.yaml
2. vim nginx.svc.yaml
yaml文件的格式:同一层级字段要对其,前面个空格多少五所谓,但空格的数量一定是一样的。
3. kubectl create -f nginx.svc.yaml
4. 查看创建的service:
kubectl get svc
5. 查看路由到endpoint上情况:
kubectl get ep
方法二:
kubectl expose nginx --type=NodePort --name=nginx-expose --port=80
删除一个sevice
kubectl delete svc nginx-expose
(三)扩展Deployment及Pod的数量:
1. 扩展命令:
kubectl scale deploy nginx --replicas=3
2. 查看扩展的情况:
kubectl get deploy nginx
kubectl describe deploy nginx
kuberctl get rs
kuberctl get pod
3. 查看service路由的情况:
(四)灰度发布及回滚
1. 版本升级:
kubectl set image deploy nginx nginx=nginx:1.7.9
2. 查看升级过程:
kubectl rollout status deploy nginx
kubectl describe deploy nginx
3. 查看history:
3.1 查看所有的history: kubectl rollout history deploy nginx
3.2 查看某个history的详细信息:kubectl rollout history deploy nginx --revision=2
4. 查看新老replicaset:
kubectl get rs
5. 发布异常时的追踪:
5.1 查看发布历史:kubectl rollout history deploy nginx
5.2 查看有问题的发布版本:kubectl rollout history deploy nginx --revision=2
5.3 查看rs: kubectl get rs
5.4 查看详细的rs: kubectl describe rs nginx-xxx
5.5 查看rs创建的pod: kubectl get pod
5.6 查看pod的详细信息: kubectl describe pod nginx-xxx-yyyy
6.回滚:
kubectl rollout undo deploy nginx
7.删除一个pod:
kubectl delete pod nginx-xxx-yyyy