Kubernetes apiserver是管理各种资源对象的唯一入口,它提供了RESTFul风格的接口用于查询和修改集群状态,并将结果存入etcd中。kubectl的核心功能就是通过apiserver操作Kubenetes的各种资源对象。
一、创建资源对象
虽然kubectl run、kubectl expose可以创建资源对象,但工作中更多的还是编写yaml文件的方式来创建对象。
$ kubectl create -f nginx-deploy.yaml
如果对象已经存在,可用apply进行更新
$ kubectl apply -f nginx-deploy.yaml
二、查看资源对象kubectl get
$ kubectl get namespaces #获取所有namespace$ kubectl get pods # 获取所有pod$ kubectl get pods -o wide # 列出命名空间下所有 pod,带有更详细的信息$ kubectl get pod,namespaces #同时获取namespaces, pods# -n 指定namespace -l指定标签$ kubectl get pods -l app=mysql -n default #获取default namespace下有app=mysql标签的pod
查看资源的详细信息:
$ kubectl get pods -o yaml$ kubectl describe pods
三、查看Pod日志
# 查看容器输出到stdout的日志$ kubectl logs myweb-qwkt2# 跟踪查看容器日志,相当于tail -f 命令的结果$ kubectl logs -f myweb-qwkt2
四、删除资源对象
$ kubectl delete services nginx # 删除service
五、在容器中执行命令
# 在pod的第一个容器中执行ls命令$ kubectl exec <pod name> ls# 在pod的某个容器中执行命令$ kubectl exec <pod name> -c <container name> ls# 登录容器$ kubectl exec -it <pod name> -c <container name> /bin/bash
附录:
kubectl可操作的资源对象
| 资源对象的名称 | 缩写 |
| componentsstatuses | cs |
| daemonsets | ds |
| deployments | |
| events | ev |
| endpoints | ep |
| horizontalpodautoscalers | hpa |
| ingresses | ing |
| jobs | |
| limitangers | limits |
| nodes | no |
| namespaces | ns |
| pods | po |
| persistentvolumes | pv |
| persistentvolumeclaims | pvc |
| resourcequotas | quota |
| replicationcontroller | rc |
| secrts | |
| serviceaccounts | |
| services | svc |
文章转载自CodingWithFun,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




