本篇文章旨意不在解释k8s原理和如何搭建,反而只是记录普通常用的命令,方便在工作中翻阅。kubernetes中文文档
准备
首先你应该知道k8s是cs架构,我们如果需要操作API就必须先安装 CLI 工具 kubectl
安装 kubectl
Mac安装
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl
Linux安装
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
其它方式或者指定版本安装请参考 https://www.kubernetes.org.cn/installkubectl
配置
kubectl 根据api形式访问、管理集群资源,所以在使用之前我们需要先配置相关连接信息config 如:cluster
,context
,user
。如果是在自己本机创建的集群(master)节点上无需配置,默认连接 http://localhost:8080,如果是其它机器需要在~/.kube/config
中添加配置信息。当然也可以配置多个集群信息进行管理,详细说明文档 请戳我
集群管理命令
查看集群列表
kubectl config get-contexts
切换集群
kubectl config use-context {contextname}
查询日志 logs
如果 pod 中只有一个容器可以不用指定 -c 容器名
kubectl logs podname [-c container-name]
查询之前运行过但已终止的
kubectl logs -p podname
查询最近1000行容器日志
kubectl logs --tail=1000 podname
查询资源描述信息 describe
查询pod描述信息
kubectl describe pods podname
查询service描述信息
kubectl describe svc servicename
查询节日描述信息
kubectl describe node nodename
资源管理
创建资源
- 编写资源配置文件 .yaml
apiVersion: v1
kind: Service
metadata:
labels:
name: resourcename
name: resourcename
namespace: default
spec:
ports:
- port: 80
targetPort: 8080
selector:
serviceName: resourcename
type: ClusterIP
- 创建
kubectl create -f resourcename.yaml
查询资源 get
查询所有 namespace
kubectl get ns 或者 kubectl get namespace
查询节点信息
kubectl get nodes
注意 get命令默认查询的是
default
namespace下的资源信息,如果需要指令namespace 需要 添加-n {namespace}
当然也可以添加--all-namespaces
查看所有资源。 如查看kube-system下的资源kubectl get -n kube-system
。
--show-labels
可以显示标签信息
查询 service
kubectl get svc 或者 kubectl get service
查询 pod
查询默认空间下pods信息
kubectl get pods
查询所有空间下pods信息
kubectl get pods --all-namespaces
查询详细信息
kubectl get pods -o wide
查询指定pod信息
kubectl get pod prometheus
根据重启次数排序查询pod信息
kubectl get pods --sort-by='.status.containerStatuses[0].restartCount'
查询 deployment
kubectl get deployment
查询 configmap
kubectl get configmap
查询prometheus配置信息
kubectl get configmap prometheus -o yaml
查询 daemonset
kubectl get ds 或者 kubectl get daemonset
修改资源
修改deployment资源
kubectl edit deployment deploymentname
为资源打标签
kubectl label pod podname tagname=tagvalue
查看资源变更记录
kubectl rollout history deployment/xxxx --revision=3
其它
进入docker容器中
kubectl exec -it podname /bin/bash
帮助命令
kubectl command -h
感谢
感谢各位老铁花时间观看!
欢迎留言指正!
内容持续更新!
微信号lykos5