k8s的常用命令(一)
常用的kubectl命令
kubectl run kubia --image=luksa/kubia --port=8080 --generator=run/v1
--image 指定镜像
--port 是告诉kubernetes 应用监听8080端口
--generator 通常不会用到,它让kubernetes创建一个replicationController . 一般不带这个参数 ,创建的是depoly资源,deploy 在调用replicaset资源,replicaset 和replicationController很像,好像是它的升级版本有更强的selector表达能力,而且这里的--generator=run/v1 并不是创建出的rc名称是run/v1,创建出的rc就是kubia, run/v1可能是标示rc的版本吧,具体不知道,反正后面不用这个,知道有这么个东西即可
后续学习中,得知--generator=run/v1 就是告诉kubernetes需要创建一个rc来管理pod
如果是:kubectcl run dnsutils --image=tutum/dnsutils --generator=run-pod/v1 --command -- sleep infinity
这里的--generator=run-pod/v1选项就是让kubectl直接创建pod,而不需要通过replicationController之类的资源来创建。
kubectl get pods
kubectl expose rc kubia --type=loadBalancer --name kubia-http
暴露 名称为kubia的rc 为名称kubia-http 的service,并且使用loadbalnacer,会将创建kubia时 port端口8080 映射出来
kubectl get service
kubectl get repliactioncontrollers
kubectl scale rc kubia --replicas=3 扩容为3个pod
kubectl get pods -o wide 查看pod在哪个node节点上
kubectl describe pod pod-id
查看集群状态
kubectl cluster-info
使用kubectl explain 来发现可能的API对象字段,如:
kubectl explain pods
想查看某个对象下某个具体字段的使用方法
kubectl explain pod.spec
使用kubectl create 来创建pod
kubectl create -f kubia-manual.yaml
得到运行中pod的完整定义
kubectl get pod kubia-manual -o yaml
kubectl get pod kubia-manual -o json
查看应用程序日志
kubectl logs kubia-manual
当一个pod中有多个容器时
kubectl logs kubia-manual -c kubia
在不通过service外界相与pod通信,可以使用port-forward命令将短裤转发到指定pod
以下命令会将机器的本地端口8888转发到我们的kubia-manual pod的端口8080:
kubectl port-forward kubia-manual 8888:8080
在kubernetes中 标签时可以组织kubernetes所有资源。
kubernetes 中创建出来的具体的对象都是资源。某一个资源 属于某一个资源类如 pod资源类,或者对象。
查看所有pod上有什么标签
kubectl get po --show-labels
如果你想将标签作为显示列的列头可以使用-L
kubectl get po -L env,app
添加pod标签
kubectl label po kubia-manual env=test
修改pod的现有标签
kubectl label po kubia-manual env=debug --overwrite
通过标签选择器列出pod
kubectl get po -l env=debug
列出包含evn标签的pod,不管env是什么值
kubectl get po -l env
列出不含evn标签的pod
kubectl get po -l '!env' (确保是单引号)
env !=
env in (test,debug)
env not in (prod,devel)
码农小明