K8S(kubernetes)入门
本篇文章旨意不在解释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: v1kind: Servicemetadata: labels: name: resourcename name: resourcename namespace: defaultspec: ports: - port: 80 targetPort: 8080 selector: serviceName: resourcename type: ClusterIP
- 创建
kubectl create -f resourcename.yaml
#
查询资源 get#
查询所有 namespacekubectl 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
可以显示标签信息
#
查询 servicekubectl 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'
#
查询 deploymentkubectl get deployment
#
查询 configmapkubectl get configmap查询prometheus配置信息kubectl get configmap prometheus -o yaml
#
查询 daemonsetkubectl 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