K8S命令模式
- 命令式模式
kubectl create deployment nginx --image nginx
kubectl run nginx --image nginx
与docker命令类似,直接使用命令来创建k8s对象
- 命令式对象配置模式
通过配置文件来辅助命令
kubectl create -f nginx.yaml
kubectl delete -f nginx.yaml
kubectl replace -f nginx.yaml
- 声明式对象配置模式
通过配置文件来部署
kubectl apply -f configs/
其中,“命令式对象配置模式”和“声明式对象配置模式”均需要指定配置文档。配置文档是一种状态文件,说明了操作的k8s对象预期达到的状态,对于追踪对象创建过程很有好处。
一般均一使用“命令式对象配置模式”来操作。
#K8S基本命令
K8S操作的可以看作都是对象,离不开增删改查四个最基本的操作
kubectl create
kubectl delete
kubectl edit
kubectl get
kubectl describe
kubectl exec
kubectl log
查看k8s中的对象
kubernetes中的对象有很多,不过查看对象信息的命令是统一的,而且在管理kubernetes集群时经常用到。
- (1)查看简要信息(列表方式)——常用
kubectl get node
:查看node节点的信息
kubectl get deploy
:查看deploy的信息
kubectl get pod
:查看pod的信息
kubectl get configmap
:查看configmap的信息
……
几乎所有的k8s对象都可以使用kubectl get xxx
的方式获查看到基本信息,系统会以列表的方式返回所有结果
注意:如果不加-n
参数,那么查看的是当前namespace下的k8s对象
- (2)查看扩展信息(列表方式)
kubectl get node -o wide
:查看node节点的信息
kubectl get deploy -o wide
:查看deploy的信息
kubectl get pod -o wide
:查看pod的信息
kubectl get configmap -o wide
:查看configmap的信息
……
几乎所有的k8s对象都可以使用kubectl get xxx -o wide
的方式获查看到扩展信息,相比于简要信息,-o wide显示的会多一些。
注意:如果不加-n
参数,那么查看的是当前namespace下的k8s对象
- (3)查看对象的状态信息——常用
kubectl get node [nodeName] -o yaml
:以yaml格式显示名称为nodeName的node节点的状态信息
kubectl get deploy [deployName] -o yaml
:以yaml格式显示名称为deployName的deploy的状态信息
kubectl get pod [podName] -o yaml
:以yaml格式显示名称为podName的pod的状态信息
kubectl get configmap [configmapName] -o yaml
:以yaml格式显示名称为configmapName的configmap的状态信息
……
如果不指定name,例如,直接使用kubectl get node -o yaml
,那么返回的是context默认命名空间下的所有node的状态信息
对象的name,可以通过kubectl get xxx
命令获得。一般操作时,可以先通过kubectl get xxx
命令获得简要信息,如果需要查看详细状态信息,在添加-o
参数查看
注意:如果不加-n
参数,那么查看的是当前namespace下的k8s对象
- (4)查看对象的详细信息
kubectl describe node [nodeName]
:查看node节点的详细运行信息
kubectl describe deploy [deployName]
:查看deploy的详细运行信息
kubectl describe pod [podName]
:查看pod的详细运行信息
kubectl describe configmap [configmapName]
:查看configmap的详细运行信息
……
详细信息中会包括该对象产生的event等详细的描述信息
注意:如果不加-n
参数,那么查看的是当前namespace下的k8s对象