【看这一篇就够了】kubernetes入门命令行操作(实例演示)

写在前面:网上找了好久终于找到了期盼已久的、一个一眼就能理解的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

kubernetes入门命令行操作(实例演示)

kubectl run

使用kubectl run 命令启动一个pod,自定义名字为nginx-test,启动3个副本,并且给这个pod打上一个标签app=nginx,这个pod中拉取nginx:1.10的镜像,并且开放80端口。

2.查看集群中所有的pod

[root@k8s-master ~]# kubectl get po

kubernetes入门命令行操作(实例演示)

kubectl get

3.根据label查看pod

kubectl get po -l 具体key或者key=value值

kubernetes入门命令行操作(实例演示)

kubectl get

4.查看pod的具体分配节点和pod的ip

[root@k8s-master ~]# kubectl get pods -l app -o wide

kubernetes入门命令行操作(实例演示)

kubectl get

5.查看pod的内部详细信息

[root@k8s-master ~]# kubectl describe pods

kubernetes入门命令行操作(实例演示)

kubectl describe

kubectl describe pod 是查看所有的pod的详细信息,查看具体的可以在pod后面指定。

6.查看集群中的deployment

[root@k8s-master ~]# kubectl get deploy

kubernetes入门命令行操作(实例演示)

deploy

7.查看集群中的ReplicaSet

[root@k8s-master ~]# kubectl get rs

kubernetes入门命令行操作(实例演示)

rs

8.查看 deploy,rs,pod的关系

通过kubectl describe 具体的deploy,rs,pod可以看出pod是由rs生成的,rs是被deploy控制的,所以官方建议通过管理deploy来操作整个集群

kubernetes入门命令行操作(实例演示)

pod与rs

kubernetes入门命令行操作(实例演示)

rs与deploy

9.通过标签来查看具体的pod和deploy

[root@k8s-master ~]# kubectl get deploy -l app

[root@k8s-master ~]# kubectl get po -l app

kubernetes入门命令行操作(实例演示)

label

10.创建一个服务service,集群中的资源通过服务与外界进行交互

[root@k8s-master ~]# kubectl expose deploy nginx-test --port=8088 --target-port=80 --name=nginx-svc

kubernetes入门命令行操作(实例演示)

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端口,可以在集群中的任意一个节点上访问服务

kubernetes入门命令行操作(实例演示)

svc

kubernetes入门命令行操作(实例演示)

svc

11.查看pod中容器的日志

[root@k8s-master ~]# kubectl log nginx-test-54c74947d4-fck7m

kubectl log 查看指定的pod

kubernetes入门命令行操作(实例演示)

log

[root@k8s-master ~]# kubectl log -l app

kubectl log -l 标签 查看所有该标签下的pod容器日志

kubernetes入门命令行操作(实例演示)

log

kubectl log还可以配合 -f,tail参数跟踪日志

12.pod副本的扩容与缩容

[root@k8s-master ~]# kubectl scale deploy nginx-test --replicas=10

通过kubectl scale命令操控具体的deploy实现相应pod扩容

kubernetes入门命令行操作(实例演示)

scale

通过kubectl get pod 可以查看扩容进度

kubernetes入门命令行操作(实例演示)

scale

还可以通过命令rollout status查看实时进度

[root@k8s-master ~]# kubectl rollout status deploy nginx-test

kubernetes入门命令行操作(实例演示)

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

kubernetes入门命令行操作(实例演示)

delete

[root@k8s-master ~]# kubectl delete svc nginx-svc

kubernetes入门命令行操作(实例演示)

delete

转载自:http://www.360doc.com/content/18/0225/21/11935121_732436265.shtml

猜你喜欢

转载自blog.csdn.net/HD243608836/article/details/82500794
今日推荐