kubectl 常用命令
kubeclt 备忘单:https://kubernetes.io/zh/docs/reference/kubectl/cheatsheet/
kubectl 介绍:https://kubernetes.io/zh/docs/reference/kubectl/overview/
配置多集群:https://kubernetes.io/zh/docs/tasks/access-application-cluster/configure-access-multiple-clusters/
命令自查
平时可通过帮助命令来查询命令用法:
kubectl -h
所有命令概览kubectl config <command> --help
具体命令的详细用法kubectl options
全局命令参数
kubeconfig 配置文件相关命令
查看配置信息
bash
# 多个汇总配置也可以查到
kubectl config view
列出所有 context
bash
kubectl config get-contexts
切换 context
bash
kubectl config use-context {CONTEXT_NAME}
切换当前默认命名空间
bash
kubectl config set-context --current --namespace=my-namespace
指定 config 文件
bash
kubectl --kubeconfig=.kube/aws-test-config
通过 apiServer 和 apiToken 来指定集群
bash
kubectl --insecure-skip-tls-verify=true --server='<apiServer>' --token='<apiToken>' get pods -n
资源管理命令
查询
bash
kubectl get pods -A # 查看所有命名空间 pod 列表
kubectl get pods -n <namespace> # 查看指定命名空间 pod 列表
kubectl get deployments -A # 查看所有命名空间 deployment 列表
kubectl logs -f <pod> # 查看 pod 容器日志
kubectl describe secret <secretName> # 查看指定 secret 的详细信息
创建
bash
kubectl create -f 1.yaml # 创建,已存在时报错
更新
bash
kubectl apply -f 1.yaml # 存在则更新,不存在则创建
kubectl replace -f 1.yaml # 替换,不存在时报错
删除
bash
kubectl delete deployments kubernetes-dashboard -n kubernetes-dashboard
其它命令
拷贝文件到 pod 中
bash
kubectl cp --help
kubectl cp /tmp/foo <namespace>/<pod>:/tmp/bar
kubectl cp <namespace>/<pod>:/tmp/foo /tmp/bar
登录 pod 终端
bash
kubectl exec -it <pod> -n <namespace> -- bash
映射本地端口到 pod 端口
bash
kubectl port-forward <pod> -n <namespace> <local-port>:<pod-port>
proxy 代理
https://kubernetes.io/zh-cn/docs/tasks/extend-kubernetes/http-proxy-access-api/
bash
kubectl proxy --address=10.221.0.102 --port=8801 --disable-filter=true
- 不加
--disable-filter=true
可能会报 forbidden 的错误 - 代理后就可以使用代理地址端口来使用 kubectl 命令和 python sdk 了
- 我当时使用是为了加速访问谷歌云 k8s 集群
伸缩副本数
bash
# 将指定命名空间的所有 deployment 副本数均置为 0
kubectl scale deploy --replicas=0 --all -n <namespace>