Kubernetes 用户指南
常用设置
命令行自动补全
推荐安装 Oh My Zsh,并打开 kubectl 及 kubectx 插件。
# ~/.bashrc 命令行自动补全
source <(kubectl completion bash)
# ~/.zshrc 命令行自动补全
source <(kubectl completion zsh)
# 添加 kubectl 的别称 k 自动补全
alias k=kubectl
complete -F __start_kubectl k
krew 插件管理命令
命令行中运行以下代码:
(
set -x; cd "$(mktemp -d)" &&
OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
KREW="krew-${OS}_${ARCH}" &&
curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
tar zxvf "${KREW}.tar.gz" &&
./"${KREW}" install krew
)
设置路径
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
安装常用插件
kubectl krew install ctx
kubectl krew install ns
RPS1='$(kubectx_prompt_info)'
VS Code 设置
"vs-kubernetes": {
"vs-kubernetes.namespace": "",
"vs-kubernetes.kubectl-path": "",
"vs-kubernetes.helm-path": "",
"vs-kubernetes.minikube-path": "",
"vs-kubernetes.kubectlVersioning": "user-provided",
"vs-kubernetes.outputFormat": "yaml",
"vs-kubernetes.kubeconfig": "/root/.kube/config",
"vs-kubernetes.knownKubeconfigs": [],
"vs-kubernetes.autoCleanupOnDebugTerminate": false,
"vs-kubernetes.nodejs-autodetect-remote-root": true,
"vs-kubernetes.nodejs-remote-root": "",
"vs-kubernetes.nodejs-debug-port": 9229,
"vs-kubernetes.dotnet-vsdbg-path": "~/vsdbg/vsdbg",
"vs-kubernetes.local-tunnel-debug-provider": "",
"checkForMinikubeUpgrade": true,
"disable-linters": [
"resource-limits"
],
"imageBuildTool": "Docker"
}
常用路径
常用命令
Hello World
# 新建 Pod:u20-tools
kubectl run u20-tools --image ma3310/ubuntu:20.04-tools -it --restart=Never
巡查集群状态
开关项
新建 k8s 资源
namespace
Kubernetes 集群上的对象按名字空间管理,命令行 kubectl 默认和 default 名字空间的对象进行交互。
存储
secret
Pod
Replicas
Deployment
配置
管理
--overwrite 开关可以覆盖已有标签
安全
Kube Proxy
运行 Kube Proxy 后可用 curl http://localhost:8006/version
与 k8s API 交互。
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}"