Kubernets User Guide

Kubernetes 用户指南

常用设置

命令行

# ~/.bashrc 命令行自动补全
source <(kubectl completion bash)

# ~/.zshrc 命令行自动补全
source <(kubectl completion zsh)

# 对 kubectl 包装应用自动补全
alias k=kubectl
complete -F __start_kubectl k

常用路径

路径 作用
~/.kube/config 命令行 kubectl 配置文件

常用命令

命令 作用
kubectl version 查看 Kubernetes 客户端及服务器版本
kubectl get componentstatuses 查看集群健康状态
kubectl cluster-info 查看集群状态
kubectl describe nodes docker-desktop 巡查节点详情
kubectl api-resources 巡查可用资源类型
kubectl get nodes 巡查节点状态
kubectl get deployments --namespace=kube-system 巡查 kube-system 下的 Deployments
kubectl get daemonsets --namespace=kube-system 巡查 kube-system 下的 DaemonSets
kubectl get services --all-namespaces 巡查所有名字空间下的 Services
kubectl edit TYPE NAME 在线编辑服务配置

开关项

开关项 作用
--no-headers 只输出数据,以供后续分析

新建 k8s 资源

命令 作用
kubectl create -f YAML 根据 YAML 声明的内容创建 K8s 对象,如:Pod、Service、etc

名字空间

Kubernetes 集群上的对象按名字空间管理,命令行 kubectl 通过 HTTP 请求,默认和 default 名字空间的对象进行交互。

命令 作用
kubectl get namespaces 查看所有名字空间

存储

命令 作用
kubectl get pods --all-namespaces 查看所有 Pods
kubectl describe pod POD_NAME 查看 Pod 详细
kubectl exec -it POD_NAME -- COMMAND 在 Pod 的第一个容器中执行命令行

Pod

命令 作用
kubectl create -f YAML 根据定义创建 K8s 对象,如:Pod、Service、etc
kubectl get pods --all-namespaces 查看所有 Pods
kubectl describe pod POD_NAME 查看 Pod 详细
kubectl exec -it POD_NAME -- COMMAND 在 Pod 的第一个容器中执行命令行,-- 分隔命令行参数

配置

命令 作用
kubectl config view 查看默认配置
kubectl config get-contexts 巡查所有用户工作环境
kubectl config current-context 确认当前工作环境
kubectl config set-context CONTEXT_NAME --namespace=kube-system 创建用户工作环境
kubectl config use-context system 引用用户工作环境

管理

--overwrite 开关可以覆盖已有标签 

命令 作用
kubectl label TYPE NAME LABEL=VALUE 给对象添加标签
kubectl label TYPE NAME LABEL- 删除标签
kubectl logs POD_NAME -f 持续查看 pod 日志
kubectl port-forward POD_NAME HOST_PORT:POD_PORT 映射主机端口到 pod

安全

命令 作用
kubectl -n kube-system describe secret default 返回默认登录密码

Kubernets Dashboard

部署

访问 Dashboard 入口,如果没有出现登录界面,根据 Dashboard 兼容信息手动部署:

# 如果存在不兼容的 Dashboard 发布,先删除
kubectl delete ns kubernetes-dashboard

# 部署 Dashboard
# 151.101.228.133:443: wsarecv: An existing connection was forcibly closed by the remote host.
# raw.githubusercontent.com 无法访问时,需设置代理
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta4/aio/deploy/recommended.yaml
kubectl proxy
# 向配置文件添加默认密码
$TOKEN=((kubectl -n kube-system describe secret default | Select-String "token:") -split " +")[1]
kubectl config set-credentials docker-for-desktop --token="${TOKEN}"

参考

Author: njun
njun's picture
Updated: 2020/06/16