Mac 用户可使用 MicroK8s 运行 Kubernetes 环境,进而开发、测试应用。通过下面的步骤可轻松搭建此环境。
MicroK8s 是一个 Ubuntu 推出的一个本地的 Kubernetes 版本。它是一个轻量级的 snap 应用,可安装到 PC 上作为一个单节点集群使用。尽管 MicroK8s 仅针对 Linux 构建,但是也可以在 Mac 上启动 Ubuntu VM 来实现。
MicroK8s 可在 Ubuntu 和任意支持 snap 的 OS 上运行全部原生的 K8s 服务。这对于开发应用,创建简单的 K8s 集群和本地微服务开发非常有帮助,所有的开发工作最终都还是需要部署的。
MicroK8s 提供另一个级别的可靠性因为它提供了与当前 Kubernetes(以下简称 Kubernetes 为 K8s)版本一致的开发环境。 在最新的上游 K8s 发布后的一周内,在 Ubuntu 上即可使用。
在 Mac 上配置 Kubernetes
K8s 和 MicroK8s 都需要一个 Linux 内核来工作,因此二者都需要 Ubuntu 环境。Mac 用户可使用 Multipass,此工具被设计为方便用户在 Mac、Windows、Linux 上开启 Ubuntu VM(虚拟)环境。
下面的教程将介绍在 Mac 上配置 Multipass 和运行 K8s。
步骤1:使用 Multipass 为 Mac 安装一个 VM
最新的 Multipass 的程序包可在 GitHub 上找到,双击 .pkg 即可安装。用 MicroK8s 来启动一个 VM:
- multipass launch --name microk8s-vm --mem 4G --disk 40G
- multipass exec microk8s-vm -- sudo snap install microk8s --classic
- multipass exec microk8s-vm -- sudo iptables -P FORWARD ACCEPT
确保为主机保留足够的资源。上述命令表示我们创建了一个名字为 microk8s-vm 的 VM,分配了 4GB 内存和 40GB 硬盘。
使用以下命令来查看 VM 分配的 IP 地址:(记一下下面的 IP,我们将从此开始)
- multipass list
- Name State IPv4 Release
- microk8s-vm RUNNING 192.168.64.1 Ubuntu 18.04 LTS
步骤2:在 VM 上与 MicroK8s 互动
可使用以下 3 种方式:
命令行,用 Multipass 的 shell 提示符:
- multipass shell microk8s-vm
用 multipass exec 来执行一个命令(输入后无提示):
- multipass exec microk8s-vm -- /snap/bin/microk8s.status
调用运行在 VM 的 K8s API 服务器,这里使用 MicroK8s 的 kubeconfig 文件和一个本地的安装的 kubectl 来访问 VM 内的 K8s,运行以下命令:
- multipass exec microk8s-vm -- /snap/bin/microk8s.config > kubeconfig
下一步,在本地主机安装 kubectl,然后使用 kubeconfig:
- kubectl --kubeconfig=kubeconfig get all --all-namespaces
- NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
- Default service/kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 3m12s
步骤 3:用 Mutlpass 服务访问 VM 并开启 MicroK8s 组件
配置基础的 MicroK8s 组件是开启 Grafana 仪表,下面我们将展示一步开启 Grafana,监视和分析一个 MicroK8s 实例。可执行以下命令:
- multipass exec microk8s-vm -- /snap/bin/microk8s.enable dns dashboard
- Enabling DNS
- Applying manifest
- service/kube-dns created
- serviceaccount/kube-dns created
- configmap/kube-dns created
- deployment.extensions/kube-dns created
- Restarting kubelet
- DNS is enabled
- Enabling dashboard
- secret/kubernetes-dashboard-certs created
- serviceaccount/kubernetes-dashboard created
- deployment.apps/kubernetes-dashboard created
- service/kubernetes-dashboard created
- service/monitoring-grafana created
- service/monitoring-influxdb created
- service/heapster created
- deployment.extensions/monitoring-influxdb-grafana-v4 created
- serviceaccount/heapster created
- configmap/heapster-config created
- configmap/eventer-config created
- deployment.extesions/heapster-v1.5.2 created
- dashboard enabled
(编辑:ASP站长网)
|