写点什么

拥抱 K8S 系列 -08- 命令行工具管理 K8S 集群 1

用户头像
张无忌
关注
发布于: 2020 年 09 月 21 日
拥抱K8S系列-08-命令行工具管理K8S集群1

前文讲到使用rancher安装好 kubernetes了并通过rancher可以完成应用部署以及部分K8S的管理工作。但是当业务出现问题,期望深入排查时,还是得依赖命令行来操作的。接下来我们就安装一下两个命令行工具—— kubectl 和 helm 。这两个shell命令行工具,我们任意选一台机器来安装这两个二进制程序即可,非常简单。我们有3台机器如下,任选一台机器安装都可以。本文先讲解kubectl的安装和使用。

测试环境架构:

节点1: 10.2.1.152 2U4G rancher-server

节点2: 10.2.1.153 2U8G K8S-all

节点3: 10.2.1.154 2U4G K8S-worker



推荐使用集群内的节点安装命令工具,比如我们选择 节点3: 10.2.1.154 来安装吧

安装很简单,直接下载命令行工具就行了

curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
mv kubectl /usr/local/bin/
# 验证安装成功
kubectl version --client=true
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.3", GitCommit:"2e7996e3e2712684bc73f0dec0200d64eec7fe40", GitTreeState:"clean", BuildDate:"2020-05-20T12:52:00Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}



但是此时kubectl 并不能连上K8S集群,因为需要验证信息,毕竟不可能任意一个人拿到kubectl就能操作你的K8S集群吧?验证信息在哪里呢?我们回到rancher

点击 Kubeconfig 文件



得到如下内容,上面已经提示了把文件内容保存到 ~/.kube/config 了



复制这段文本(复制按钮在 文本页面最下方)



在下载好kubectl的服务器 上创建该文件 ~/.kube/config, 并把复制的内容粘贴进去就大功告成了

可执行如下命令进行测试





运行结果如上图所示,就说明命令行已经安装好了,我们再贴一些常用的操作命令,这些命令对集群不会有任何危害,请放心敲击

kubectl get node
kubectl get deploy
kubectl get pod
kubectl get service
kubectl get endpoint
kubectl get ingress
kubectl describe pod <pod_name>



如果你尝试过在命令行上敲击过上述命令,就会发现,敲这些命令太繁琐了。有没有简便一些的操作方式?

当然是有的,命令行和操作对象都是可以补全或者设置简化别名的

yum -y install bash-completion
cat >/etc/profile.d/kubectl.sh<<-'EOF'
export KUBECONFIG=~/.kube/config
source <(kubectl completion bash)
source <(kubectl completion bash | sed s/kubectl/k/g)
alias k=kubectl
alias kcd='kubectl config set-context $(kubectl config current-context) --namespace'
alias kga='kubectl get all'
alias kgn='kubectl get node'
alias kgp='kubectl get pod'
alias kgi='kubectl get ing'
alias kgd='kubectl get deploy'
alias kgs='kubectl get svc'
alias kge='kubectl get ep'
alias kgcm='kubectl get configmap'
alias kdp='kubectl describe pod'
EOF



接下来你就可以使用简化的命令来操作K8S了,例如:

# kgn
NAME STATUS ROLES AGE VERSION
di-rancher-c1-153 Ready controlplane,etcd,worker 42d v1.17.4
di-rancher-c1-154 Ready controlplane,etcd,worker 42d v1.17.4



发布于: 2020 年 09 月 21 日阅读数: 52
用户头像

张无忌

关注

运维老司机带你精通各种删库删服操作 2020.08.27 加入

最近在写K8S系列文章

评论

发布
暂无评论
拥抱K8S系列-08-命令行工具管理K8S集群1