Skip to main content

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

资源管理#

创建资源#

  1. 编写资源配置文件 .yaml
apiVersion: v1kind: Servicemetadata:  labels:    name: resourcename  name: resourcename  namespace: defaultspec:  ports:  - port: 80    targetPort: 8080  selector:    serviceName: resourcename  type: ClusterIP
  1. 创建
kubectl create -f resourcename.yaml

查询资源 get#

查询所有 namespace#

kubectl get ns  或者  kubectl get namespace

查询节点信息#

kubectl get nodes

注意 get命令默认查询的是defaultnamespace下的资源信息,如果需要指令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