kubectl 别名配置

我习惯把 kubectl alias 成 k

mac为例
vi ~/.bashrc
alias k='kubectl'
alias ka='kubectl apply --recursive -f'
alias kex='kubectl exec -i -t'
alias klo='kubectl logs -f'
alias kg='kubectl get'
alias kd='kubectl describe'
alias kcp='kubectx config_pro'
alias kct='kubectx config_test'
alias kip='kubectl get pods  -o=custom-columns=NAME:.metadata.name,Node-IP:.status.hostIP,Pod-IP:.status.podIP'

别名使用

kg po //获取pod
kg po podname 获取pod描述

Context 和 Namespace 切换

一直敲 --context=xxx -n=xxx 是很麻烦的事情,而 kubectl 切换 Context 和 Namespace 又比较繁琐。好在 kubectx 项目能很好地解决这个问题(结合 fzf 体验更棒)。

brew install kubectx
brew install fzf # 辅助做 context 和 namespace 的模糊搜索

装完之后基本操作,重命名成 kubectl 插件的格式:

mv /usr/local/bin/kubectx /usr/local/bin/kubectl-ctx
mv /usr/local/bin/kubens /usr/local/bin/kubectl-ns

使用
k ctx
k ns

tail 多个 Pod 的日志

kubectl logs 有一个限制是不能同时 tail 多个 Pod 中容器的日志(可以同时查看多个,但是此时无法使用 -f 选项来 tail)。这个需求很关键,因为请求是负载均衡到网关和微服务上的,要追踪特定的访问日志最方便的办法就是 tail 所有的网关再 grep。比较好的解决方案是 stern 这个项目,除了可以同时 tail 多个容器的日志之外,stern 还:
允许使用正则表达式来选择需要 tail 的 PodName
为不同 Pod 的日志展示不同的颜色
tail 过程中假如有符合规则的新 Pod 被创建,那么会自动添加到 tail 输出中

可以说是非常方便了。老样子,还是加入到我们的 kubectl 插件中:

brew install stern
mv /usr/local/bin/stern /usr/local/bin/kubectl-tail
# tail 当前 namespace 所有 pod 中所有容器的日志
k tail .

在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐