背景
我们这里使用的是阿里云的 kubenetes 托管版本
在使用托管版本 的时候至少是两台机器。我们这里就用了两台机器。阿里默认提供一个apiservice 服务。大家知道我们通过操作 apiservice 来控制集群。本地没有Kubernetes环境 但是需要操作使用kubectl 操作远端 apiservice。
目标
1.本机使用kubectl 控制远端集群
2.本机获取远端的 comfigmap内容
config文件
打开我们开通的阿里云 k8s 集群如下图:
打开后如下:
复制
KubeConfig(公网访问的内容)
tab 页面黑色部分内容.这里需要记录两个值:
-
config-file-content
内容就是复制黑色部分的内容
2.k8sIP
就是 黑色部分中的 server 后面遮挡的那部分ip
mac OS 配置
本地需要安装一个客户端 这里使用brew 安装 如果没有brew 的 自行安装下 这里不赘述。macOS下比较常用这个
brew install kubernetes-cli
安装完成之后我们需要在 cd ~/.kube/
文件夹下找到 config文件 如果没有需手动创建一个 并粘贴 config-file-content
的内容
还需要 修改 hosts 文件增加如下内容
# 这里的 127.0.0.1 需要更具自己的k8s集群来更换 k8sIP
127.0.0.1 kubernetes.docker.internal
然后在mac 上就可以远程操作 远端k8s集群
windows 配置
1.下载kubectl.exe 文件
https://storage.googleapis.com/kubernetes-release/release/v1.7.0/bin/windows/amd64/kubectl.exe
2.安装后 打开cmd 查看 是否能使用 kubectl命令。如果不能则需要自己配置一下 环境变量
3.配置config文件
再如下图路径下面 ·/kube
创建 config文件 添加上述config-file-content
的内容
4 修改host
# 这里的 127.0.0.1 需要更具自己的k8s集群来更换 k8sIP
127.0.0.1 kubernetes.docker.internal
然后就可以愉快的使用kubectl 操作远程k8s 集群了
顺便说一下 在springboot2.X项目中使用了了configmap加入以下依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-kubernetes-config</artifactId>
</dependency>
然后本地也可以获取 远端的配置。这个在后面这篇有详解
springboot中使用configmap