目录
一、陈述式管理
1、陈述式资源管理办法
2、K8s相关信息查看
2.1 查看版本信息
2.2 查看节点信息
编辑
2.3 查看资源对象简写
2.4 查看集群信息
2.5 配置kubectl自动补全
2.6 查看日志
2.7 基本信息查看
查看命名空间
2.8 命名空间操作
2.9 deployment/pod操作
2.10 增加/删除label
二、声明式管理
1、声明式管理办法
2、查看资源配置清单
3、解释资源配置清单
4、修改资源配置清单并应用
4.1 离线修改
4.2 在线修改
5、删除资源配置清单
5.1 陈述式删除
5.2 声明式删除
kubectl version
kubectl get nodes
kubectl api-resources
kubectl cluster-info
source <(kubectl completion bash)
可通过TAB实现命令补全,建议将其写入/etc/profile
#查看组件日志
journalctl -u kubelet -f
或
kubectl logs [组件名] -n [命名空间]
kubectl get [-o wide|json|yaml] [-n namespace]
获取资源的相关信息,-n指定命名空间,-o指定输出格式
resource可以是具体资源名称,如"pod nginx-xxx";也可以是资源类型,如"pod,node,svc,depoly"多种资源使用逗号隔离;或者all(仅展示几种核心资源,并不完整)
查看master节点状态
kubectl get componentstatuses
#componentstatues可以缩写成cs
kubectl get cs
kubectl get namespace
#namespace可以缩写成ns
kubectl get ns
查看default命名空间的所有资源
kubectl get all [-n default]
创建命名空间
kubectl create ns ye
删除命令空间
kubectl delete ns ye
在命名空间kube-public创建副本控制器(deployment)来启动Pod(nginx-test)
kubectl create deployment nginx-test --image=nginx -n kube-public
描述某个资源的详细信息
kubectl describe deployment nginx-test -n kube-public
kubectl describe pod nginx-test -n kube-public
查看命名空间kube-public中pod信息
kubectl get pods -n kube-public
登录容器
kubectl exec 可以跨主机登录容器,docker exec 只能在容器所在主机登录
kubectl exec -it nginx-test-795d659f45-qs48r bash -n kube-public
删除(重启)pod资源
由于存在deployment/rc 之类的副本控制器,删除pod也会重新拉起来
kubectl delete pod nginx-test-795d659f45-qs48r -n kube-public
kubectl get pod -n kube-public
若无法删除,总是处于terminate状态,则要强行删除pod
kubectl delete pod [] -n [] --force --grace-period=0
grace-period标识过渡存活期,默认30s,在删除pod之前允许pod慢慢终止其上的容器进程,从而优雅的退出,0标识立即终止pod
扩缩容
扩容
kubectl scale deployment nginx-test --replicas=3 -n kube-public
缩容
kubectl scale deployment nginx-test --replicas=1 -n kube-public
删除副本控制器
kubectl delete deployment nginx-test -n kube-public
定义自动扩容缩容规则
使用deployment “foo” 设定,使用默认的自动伸缩策略,指定目标cpu使用率,使其pod数量在2-10之间
kubectl autoscale deployment foo --min=2,--max=10
使用RC'foo' 设定,使其pod的数量介于1-5之间,cpu使用率维持在80%
kubectl autoscale rc foo --max=5 --cpu-rercent=80
自动扩容,缩容触发条件
定义最大最小pod数量
定义扩容条件:往往和pod使用的基础资源百分比相关,例如使用到cpu资源80%的时候触发扩容,80% 不是指node节点的80%,而是指pod内limit上限的80%
增加label
kubectl label deploy nginx version=nginx-new
删除label
kubectl label deploy nginx version-
kubectl get deploy/nginx-test -o yaml
#查看deploy控制器配置清单
kubectl get service nginx -o yaml
#查看pod配置清单
kubectl explain deployment.metadata
修改yaml文件
修改yaml文件:并用kubectl apply -f xxxx.yaml文件使之生效
注意:当app不生效时,先使用delete清除资源,再apply创建资源
kubectl get service nginx -o yaml > nginx-svc.yaml
删除资源
kubectl delete -f nginx-svc.yaml
新建资源
kubectl apply -f nginx-svc.yaml
查看service资源
kubectl get svc
直接使用kubectl edit service nginx-service在线编辑配置资源清单并保存退出即时生效(如port: 888)
PS:此修改方式不会对yaml文件内容修改
kubectl edit service nginx
kubectl delete service nginx
kubectl delete -f nginx-svc.yaml