目录

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

    1. 云服务器安装 Minikube

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

    以 CentOS 为例,执行命令:

    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:

    minikube start --vm-driver=none 
    

    启动 Dashboard:

    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/

    尝试部署一个应用:

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

    查看 POD 信息:

    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 ,执行命令:

    brew install kubernetes-cli
    

    4. 本地配置 kubectl

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

    mkdir ~/.kube
    scp -r [email protected]_host_ip:/root/.kube/config ~/.kube/config
    mkdir ~/.minikube
    scp -r [email protected]_host_ip:/root/.minikube/\{ca.crt,client.crt,client.key\} ~/.minikube/
    

    修改 kubectl 配置文件

    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 信息:

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

    5. 参考