k8s组成
kubectl
// 客户端命令行工具,系统操作入口
kube-apiserver
// 以REST API服务提供接口,作为系统的控制入口
kube-controller-manager
// 执行整个系统的后台任务,包括节点状况状态,Pod个数,Pods和Service的关联等
kube-scheduler
// 负责节点资源管理,接受来自kube-apiserver创建Pods任务,并分配到某个节点
etcd
// 负责节点间的服务发现和资源配置共享
kube-proxy
// 运行在每个节点上,负责Pod网络代理。定时从ectd过去到service信息来做相应的策略
kubelet
// 运行在每个节点上,作为agent,接受分配该节点的Pods任务及管理容器,周期性获取容器状态,反馈给kube-apiserver
DNS
// 一个可选的DNS服务,用于为每个Service对象创建DNS记录,这样所有Pod就可以通过DNS访问服务
kubectl get nodes
// 打印集群信息
kubectl get pod
// 获取pod信息
kubectl logs -f --tail(行数) podName(pod名)
// 查看指定pod的日志信息
kubectl get pod -n (Namespace)
// 查看pod信息,-n 表示Name
kubectl get nodes
// 查看节点信息
kubectl get svc -A
// 查看所有的service信息
kubectl get ns
// 查看所有名称空间
kubectl get pod -A
// 查看所有名称空间的信息
kubectl exec podName env
// 查看指定名称的环境变量
kubectl get pod -o wide
// 获取pod详细信息
kubectl edit pod podName
kubectl edit pod -n Namespace podName -o yaml 指定yaml
// 编辑资源
kubectl cluster-info 、kubectl culster-info dump
// 查看集群信息 、 dump标准输出
kubectl exec -it podName -n nsName /bin/sh、 kubectl exec -it -n naName /bin/bash
// 进入pod容器
kubectl delete pod podName
// 删除指定pod
kubectl delete pod -n Namespace podName
// 删除指定命名空间的pod
kubectl get cs
// 查看集群资源
kubectl get pods -o yaml 、 kubectl get pods -o json
kubectl get pods -n Namespace -o yaml 指定
// 查看pod的详细信息
资源相关
kubectl create -f // 创建对象
kubectl create -f <'url'> // 从url创建对象
kubectl delete -f // 删除对象
集群相关
kubecrl cluster-info --显示集群中主机和服务的端点信息
kubectl version --显示客户端和服务器上运行的Kubernetes版本
kubectl config view --获取集群配置
kubectl config view -o jsonpath='{.users[*].name}' --获取用户列表
kubectl config current-context --查看当前上下文
kubectl config get-contexts --查看上下文列表
kubectl config use-context --设置默认上下文
kubectl api-resources --列出可用的api资源
kubectl api-versions --列出可用的API版本
kubectl get all --all-namespaces --获取所有名称空间
Daemonsets 相关
kubectl get-daemonset --列出一个或多个守护进程
kubectl edit daemonset
kubectl delete daemonset
kubectl create daemonset
kubectl rollout daemonset --管理守护进程的rollout
kubectl describe ds
deployments相关
kubectl get deployment --列出一个或多个部署
kubectl describe deployment <deployment_name> --显示一个或多个部署的详细状态
kubectl edit deployment <deployment_name> --编辑和更新服务器上一个或多个部署的定义
kubectl create deployment <deployment_name> --创建一个新的部署
kubectl delete deployment <deployment_name> --删除多个部署
kubectl rollout status deployment <deployment_name> --查看部署的推出状态
kubectl set image deployment/ =image: --执行滚动更新(K8S默认值),将容器映像设置为特定部署的新版本
kubectl rollout undo deployment/ --回滚以前的部署
kubectl replace --force -f -Perform a replace deployment --强制替换、删除然后重新创建资源
事件相关
kubectl get events --列出系统中所有资源的最近事件
kubectl get events -field-selector type=Warning --仅列出警告
kubectl get events --sort-by=.matadata.creationTimestamp --列出按时间戳排序的事件
kubectl get events --field-selector invovedObjeck.kind!=Pod --列出事件,但不包括Pod事件
kubectl get events --field-selector involvedObjeck.kind=Node,involvedObjeck.name=<node_name> --为具有特定名称的单个节点提取事件
kubectl get events --field-selector type!=Normal --从事件列表中过滤掉正常事件
日志相关
kubectl logs <pod_name> -- 打印一个pod的日志
kubectl logs --since=6h <pod_name> --打印一个pod过去六小时的日志
kubectl logs --tail 50 --打印最后50行日志
kubectl logs -f <service_name> [-c <$container>] --从服务获取日志,并可选地选择容器
kubectl logs -f
kubectl logs -c
kubectl logs
kubectl logs --previous
Namespace相关
kubectl create namespace <Namespace_name> --创建一个命名空间
kubectl get namespace
kubectl describe namespace
kubectl delete namespace
kubectl edit namespace
kubectl top namespace
node相关
kubectl taint node --更新一个或多个节点上的污点
kubectl get node -- 列出节点
kubectl delete node -- 删除单个或多个节点
kubectl top node -- 显示节点的资源使用情况(CPU/内存/存储)
kubectl get pods -o wide | grep --列出在节点上运行的pod
kubectl annotate node -- 注释节点
kubectl cordon node -- 将节点标记为不可调度的
kubectl uncordon node -- 将节点标记为可调度的
kubectl drain node --将节点沥干,为维护做好准备
kubectl label node --添加或更新一个或多个节点的标签
kubectl get node -- 列出节点
kubectl delete node
kubectl top node
kubectl get pods -o wide | grep
kubectl annotate node
kubectl cordon node
kubectl uncordon node
kubectl drain node
kubectl label node --添加或更新一个或多个节点的标签
Pods操作相关
kubectl get pod -- 列出一个或多个pod
kubectl get pods --sort-by='.status.containerStatuses[0].restartCount' --按重启计数排序的pods列表
kubectl get pods --field-selector=status.phase=Running -- 获取命名空间中所有正在运行的pod
kubectl delete pod --删除pod
kubectl create pod -- 创建一个pod
kubectl exec -it /bin/sh --在单容器pod上获得交互式shell
kubectl exec -c --对pod中的容器执行命令。阅读更多:使用Kubectl Exec:连接到Kubernetes容器
kubectl top pod --显示pod的资源使用情况(CPU/内存/存储)。
kubectl annotate pod --添加或更新pod的注释
kubectl label pods new-label= --添加或更新pod的标签
kubectl get pods --show-labels --获取pod,并显示标签
kubecrl port-forward: --监听本地机器上的一个端口,并转发到指定pod上的一个端口
kubectl create pod
kubectl exec -it
kubectl exec
kubectl top pod --显示pod的资源使用情况(CPU/内存/存储)。
kubectl annotate pod
kubectl label pods
kubectl get pods --show-labels --获取pod,并显示标签
kubecrl port-forward: --监听本地机器上的一个端口,并转发到指定pod上的一个端口
Replication Controller相关
kubectl get rc --列出复制控制器
kubectl get rc --namespace='
ReplicaSets相关
kubectl get replicasets --ReplicaSets列表
kubectl describe replicasets
kubectl scale --replicas=[x] --缩放复制集
Sercrets相关
kubectl create secret -- 创建一个秘钥文件
kubectl get secrets --列出密钥文件
kubectl describe secrets --列出秘密的详细信息
kube delete secret
Services 相关
kubectl get services --列出一个或多个服务
kubectl describe services --显示服务的详细状态
kubectl expose deployment [deploymentName] --将复制控制器、服务、部署或pod暴露公开为新的Kubernetes服务
kubectl edit services --编辑和更新一个或多个服务的定义
Service Account相关
kubectl get serviceaccounts --列出业务帐户
kubectl describe serviceaccounts --显示一个或多个服务帐户的详细状态
kubectl replace serviceaccount --更换业务帐户
kubectl dalete serviceaccount <service_accountName> --删除一个业务账户
StatefulSets相关
kubectl get statefulset -- 列出statefulset
kubectl delete statefulset/[stateful_set_name] --cascade=false --只删除statfulset(不删除pod)