通过kubectl连接Kubernetes集群,附shell命令

1. 前言

我所在团队一样,测试环境的MySQL在阿里云的Kubernetes集群上,但是又没有映射一个固定地址来让我们访问。
所以每次连接测试环境,需要本地用kubectl端口转发MySQL 3306到本地才能访问。

如果你所在的团队和我一样,那么这篇文章或许会给你一定的帮助

阿里云官方说明文档
https://help.aliyun.com/document_detail/86494.html

2. 获取鉴权信息

2.1 安装kubectl

# 安装kubectl (Mac平台)
brew install kubectl 

# 校验是否安装成功
kubectl version --client

2.2 配置凭证

  1. 访问阿里云后台

https://homenew.console.aliyun.com/

  1. 进入容器服务页

左上角橙色菜单按钮 -> 产品与服务 -> 容器服务kubernetes版
在这里插入图片描述

  1. 进入一台集群详情页

左侧菜单 -> 集群 -> 集群 -> k8s(集群名称)
在这里插入图片描述

  1. 复制凭证

页面最下方有2个tab,在kubeConfig(公网访问)选项卡中,点击复制
在这里插入图片描述

  1. 本地创建凭证文件

创建一个~/.kube/config文件,把上一步复制的内容贴入后保存

# 创建本地配置文件
mkdir ~/.kube/config

3. 端口转发命令

  1. 端口转发命令可以参考这一条,不用每次都去获取实例名
#映射mysql端口
kubectl -n dev port-forward $(kubectl -n dev get pods | grep ^mysql | grep Running | awk 'NR==1{print $1}') 3306:3306

在这里插入图片描述
2. 然后db客户端访问本地3306端口即可

在这里插入图片描述

以上就是全部内容了,后面的内容可以不看


4. 附

4.1 端口转发实际命令

第3节中的命令实际是自动去获取了实例名,端口转发实际命令如下

命令: kubectl -n 命名空间 port-forward 应用实例名 3306:3306

kubectl -n dev port-forward mysql-dev-665abcddf7-rvssx 3306:3306

命令空间可以从这个页面获取:
左侧菜单 -> 应用 -> 无/有状态 -> 命名空间
在这里插入图片描述
使用实例名可以从这李获取:

同一页面,右侧搜索应用名“mysql”,点进去,页面下方就是实例名
在这里插入图片描述

4.2 更易用的小脚本

  1. 保存以下内容到本地 mysql.sh
#!bin/sh

#默认配置
env=dev
port=3306

env_list=("dev" "dev-01" "dev-02" "dev-03" "dev-05")

if [ -n "$1" ]; then
	env=$1
	if [[ "$1" = "help" || "$1" = "h" ]]; then
		echo "MySQL Environment List"
		for (( i=0; i < ${#env_list[@]}; i++ ))
		do 			
			printf "%-10s %-2s %-10s\n" "${env_list[i]}" "-" `expr ${
     
     i} + 1`
		done
		exit 0
	fi
	if [[ $1 -ge 1 && $1 -le ${#env_list[@]} ]]; then
		env=${env_list[$1 - 1]}
	fi
fi


if [ -n "$2" ]; then
	port=$2
fi

echo $env $port

#映射mysql端口
kubectl -n $env port-forward $(kubectl -n $env get pods | grep ^mysql | grep Running | awk 'NR==1{print $1}') $port:3306

  1. 使用方式
# 默认以 dev 3306启动
sh mysql.sh

# 指定其他环境与端口号
sh mysql.sh dev-01 3307

# 查看帮助文档
sh mysql.sh h

# 指定快捷键对应的环境
sh mysql.sh 1

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/tomoya_chen/article/details/107868913
今日推荐