赞
踩
查看所有namespace:kubectl get namespace
查看默认的配置:kubectl config view
获取集群里的各种资源信息,某些资源未指定namespace时,默认指定default
常见用法:
kubectl get pods/rc/svc/deployment/namespace
获取pod的节点信息:kubectl get pods -o wide
以yaml/json格式输出详细信息:kubectl get pods <pod_name> -o yaml/json
所有namespace:kubectl get pods -A
指定namespace:kubectl get pods -n xxx
获取节点信息:kubectl get nodes
获取集群相关的信息,用于排查pod不是running状态时的问题
(会显示pod的运行事件,比如镜像有没有拉取,容器有没有创建)
kubectl describe pods <pod_name>
根据文件创建集群resource(pod或者rc),
kubectl create -f <yaml_file>
Eg: rc-nginx.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: rc-nginx-2
spec:
replicas: 2
template:
metadata:
labels:
app: nginx-2
spec:
containers:
- name: nginx-2
image: xingwangc.docker.rg/nginx
ports:
- containerPort: 80
用于对正在运行的已有资源进行更新替换(修改副本数量,修改image版本,端口等),可以直接修改原yaml文件,然后执行replace命令(删除原有资源然后重新构建资源)
kubectl replace -f <yaml_file>
注意:yaml文件里的metadata的name不能修改(是按照name作为资源的唯一标识)
如对正在运行的容器的属性进行在线修改(不删除容器),比如修改pod的label等
kubectl patch pod rc-nginx-2-kpiqt -p '{"metadata":{"labels":{"app":"nginx-3"}}}'
和replace一样替换资源
kubectl get pods <pod_name>
等同于:
kubectl get po rc-nginx-btv4j -o yaml >> /tmp/nginx-tmp.yaml
vim /tmp/nginx-tmp.yaml
/*do some changes here */
kubectl replace -f /tmp/nginx-tmp.yaml
删除Pod等资源
kubectl delete pods <pod_name>
显示pod运行中,容器内的程序输出到控制台的内容
kubectl logs <pod_name>
滚动更新(在不中断业务的情况下更新Pod),rolling-update每次起一个新的pod,等新pod完全起来后删除一个旧的pod,直到替换掉所有的pod。注:确保新的版本有不同的name/version/label
kubectl rolling-update <pod_name> -f <new_yaml_file>
中止update回滚到之前的版本:
kubectl rolling-update <pod_name> -rollback
动态扩展副本
kubectl scale rc <rc_name> —replicas=4
对一个node进行维护(平滑的将被维护节点上的业务迁移到其他节点上,保证业务不受影响)
cordon:kubectl cordon <node_name>
drain:kubectl drain <node_name>
uncordon:kubectl uncordon <node_name>
参考文档:
https://blog.csdn.net/xingwangc2014/article/details/51204224
kubectl exec -it podName sh
kubectl cp podName:/root/xx.log /root/xx.log
kubectl scale --replicas=0 deploy/deployName
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。