写在前面:网上找了好久终于找到了期盼已久的、一个一眼就能理解的kubernetes“整体全过程”文章。
建议看这篇文章可以结合kubernetes官网(www.kubernetes.io)的Tutorial进行演练,效果很好。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kubectl是kubernetes自带的管理工具,封装了对api-server的调用,可以用它通过命令与k8s集群进行交互,kubectl将命令行转为json字符串,提交给api-server,完成相关命令!可以通过kubectl --help命令查看官方帮助文档,也可以登录官方网站查阅!下面实例演示相关命令的具体使用。
1.在集群中运行一个应用程序(nginx)
[root@k8s-master ~]# kubectl run nginx-test --replicas=3 --labels='app=nginx' --image=nginx:1.10 --port=80
kubectl run
使用kubectl run 命令启动一个pod,自定义名字为nginx-test,启动3个副本,并且给这个pod打上一个标签app=nginx,这个pod中拉取nginx:1.10的镜像,并且开放80端口。
2.查看集群中所有的pod
[root@k8s-master ~]# kubectl get po
kubectl get
3.根据label查看pod
kubectl get po -l 具体key或者key=value值
kubectl get
4.查看pod的具体分配节点和pod的ip
[root@k8s-master ~]# kubectl get pods -l app -o wide
kubectl get
5.查看pod的内部详细信息
[root@k8s-master ~]# kubectl describe pods
kubectl describe
kubectl describe pod 是查看所有的pod的详细信息,查看具体的可以在pod后面指定。
6.查看集群中的deployment
[root@k8s-master ~]# kubectl get deploy
deploy
7.查看集群中的ReplicaSet
[root@k8s-master ~]# kubectl get rs
rs
8.查看 deploy,rs,pod的关系
通过kubectl describe 具体的deploy,rs,pod可以看出pod是由rs生成的,rs是被deploy控制的,所以官方建议通过管理deploy来操作整个集群
pod与rs
rs与deploy
9.通过标签来查看具体的pod和deploy
[root@k8s-master ~]# kubectl get deploy -l app
[root@k8s-master ~]# kubectl get po -l app
label
10.创建一个服务service,集群中的资源通过服务与外界进行交互
[root@k8s-master ~]# kubectl expose deploy nginx-test --port=8088 --target-port=80 --name=nginx-svc
kubectl expose
k8s集群是通过deploy来管理的,所以在创建服务时,实际上是给相应的deploy创建服务,案例中通过kubectl expose命令暴漏了deploy的外部端口为8088,内部端口为80,并且给创建的服务自定义命名为nginx-svc。
11.查看创建的服务
[root@k8s-master ~]# kubectl get svc
查看到集群给创建的服务自动分配了一个ip地址为10.10.10.205,通过这个ip和8088端口,可以在集群中的任意一个节点上访问服务
svc
svc
11.查看pod中容器的日志
[root@k8s-master ~]# kubectl log nginx-test-54c74947d4-fck7m
kubectl log 查看指定的pod
log
[root@k8s-master ~]# kubectl log -l app
kubectl log -l 标签 查看所有该标签下的pod容器日志
log
kubectl log还可以配合 -f,tail参数跟踪日志
12.pod副本的扩容与缩容
[root@k8s-master ~]# kubectl scale deploy nginx-test --replicas=10
通过kubectl scale命令操控具体的deploy实现相应pod扩容
scale
通过kubectl get pod 可以查看扩容进度
scale
还可以通过命令rollout status查看实时进度
[root@k8s-master ~]# kubectl rollout status deploy nginx-test
rollout status
pod副本的缩容,通理扩容,改变副本数量即可
[root@k8s-master ~]# kubectl scale deploy nginx-test --replicas=2
13.删除资源
pod与rs是不能直接删除的,因为他们是被deploy控制的,即使删除了某一个pod或rs,deploy会立刻自动创建新的pod,来与配置中副本对应。
要想删除pod和rs,只能删除对应的deploy,使用 kubectl delete 可以删除deploy和svc。
[root@k8s-master ~]# kubectl delete deploy nginx-test
delete
[root@k8s-master ~]# kubectl delete svc nginx-svc
delete
转载自:http://www.360doc.com/content/18/0225/21/11935121_732436265.shtml