Please enable Javascript to view the contents

搭建远程 Kubernetes 开发环境

 ·  ☕ 2 分钟

Minikube 是 Kubernetes 的单机发行版本,适用于产品体验和日常开发。这里使用 Minikube 搭建开发环境,将 Kubernetes 搭建在 CentOS 云服务器,本地使用 OS X 进行远程开发。

1. 云服务器安装 Minikube

在 Minikube 的 GitHub 版本页面,找到合适的版本,进行安装。

以 CentOS 为例,执行命令:

1
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v1.2.0/minikube-linux-amd64 && chmod +x minikube && sudo cp minikube /usr/local/bin/ && rm minikube

minikube 是一个可执行的二进制文件,下载之后,添加可执行权限即可。Docker 安装,请参考这里

2. 云服务器运行 Minikube

通过参数 --vm-driver ,指定 minikube 使用 CentOS 上已经安装的 Docker 环境。执行命令,启动 Minikube:

1
minikube start --vm-driver=none 

启动 Dashboard:

1
minikube dashboard

如果无法启动,可以尝试执行 kubectl proxy --address='0.0.0.0' --disable-filter=true ,在页面访问 http://127.0.0.1:8001/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/

尝试部署一个应用:

1
kubectl run kube-nginx --image=nginx:latest --port=80

查看 POD 信息:

1
2
3
kubectl get pods
NAME                          READY   STATUS    RESTARTS   AGE
kube-nginx-7c765ffd95-v6gc9   1/1     Running   1          2m

3. 本地安装 kubectl

kubectl 是 Kubernetes 集群的客户端管理工具。kubectl 与 Kubernetes 构成一个 CS 的架构模型,可以在不同的机器上运行。

以 OS X 为例安装 kubectl ,执行命令:

1
brew install kubernetes-cli

4. 本地配置 kubectl

拷贝服务器上的 minikube 认证信息,本地执行:

mkdir ~/.kube
scp -r root@your_host_ip:/root/.kube/config ~/.kube/config
mkdir ~/.minikube
scp -r root@your_host_ip:/root/.minikube/\{ca.crt,client.crt,client.key\} ~/.minikube/

修改 kubectl 配置文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
cat ~/.kube/config
apiVersion: v1
clusters:
- cluster:
    # 修改为 ca.crt 的正确路径
    # certificate-authority: ../.minikube/ca.crt
    # 修改为服务器的 IP 地址
    server: https://your_host_ip:8443
    # 不校验证书,否则会提示 x509 校验失败
    insecure-skip-tls-verify: true
  name: minikube
contexts:
- context:
    cluster: minikube
    user: minikube
  name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
  user:
    # 修改为 client.crt 的正确路径
    client-certificate: ../.minikube/client.crt
    # 修改为 client.key 的正确路径
    client-key: ../.minikube/client.key

查看远程 Kubernetes 集群中的 Pod 信息:

1
2
3
kubectl get pods
NAME                          READY     STATUS    RESTARTS   AGE
kube-nginx-7c765ffd95-2pxfk   1/1       Running   0          11m

5. 参考


微信公众号
作者
微信公众号