如何在Mac上配置Kubernetes

系统
Mac 用户可使用 MicroK8s 运行 Kubernetes 环境,进而开发、测试应用。通过下面的步骤可轻松搭建此环境。

[[270504]]

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    
  • 1.
  • 2.
  • 3.

确保为主机保留足够的资源。上述命令表示我们创建了一个名字为 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      
  • 1.
  • 2.
  • 3.

步骤2:在 VM 上与 MicroK8s 互动

可使用以下 3 种方式:

命令行,用 Multipass 的 shell 提示符:

multipass shell microk8s-vm         
  • 1.

multipass exec 来执行一个命令(输入后无提示):

multipass exec microk8s-vm -- /snap/bin/microk8s.status      
  • 1.

调用运行在 VM 的 K8s API 服务器,这里使用 MicroK8s 的 kubeconfig 文件和一个本地的安装的 kubectl 来访问 VM 内的 K8s,运行以下命令:

multipass exec microk8s-vm -- /snap/bin/microk8s.config > kubeconfig  
  • 1.

下一步,在本地主机安装 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 
  • 1.
  • 2.
  • 3.

步骤 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 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.

接下来,用下面命令检查部署进程:

multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl get all --all-namespaces    
  • 1.

返回信息如下:

一旦所有的必要服务已开启,接下来使用以下的链接访问仪表。命令如下:

multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl cluster-info   
Kubernetes master is running at https://127.0.0.1:16443 
Heapster is running at https://127.0.0.1:16443/api/v1/namespaces/kube-system/services/heapster/proxy 
KubeDNS is running at https://127.0.0.1:16443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy 
Grafana is running at https://127.0.0.1:16443/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy 
InfluxDB is running at https://127.0.0.1:16443/api/v1/namespaces/kube-system/services/monitoring-influxdb:http/proxy 
 
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

如果我们在 VM 内,可以用此链接来访问 Grafana 仪表。不过,我们可以通过代理在主机上访问。

multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl proxy --address='0.0.0.0' --accept-hosts='.*'  
Starting to serve on [::][::]:8001 
  • 1.
  • 2.

保持终端运行状态,记一下端口号(8001),我们在下一步需要用到。要访问 Grafana 仪表,我们需要修改 VM 内仪表的链接: 

  • 使用 VM 的 IP 替换 127.0.0.1(multipass info microk8s-vm
  • 将端口(16443)替换为代理端口 8001。
  • 在浏览器内输入这个链接地址:https://127.0.0.1:8001/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy,你将看到 Grafana 仪表,如下图:

总结

使用 MicroK8s 在本地开发和测试应用,将使得团队在部署上更快,这对于开发者和 DevOp 团队来说是非常有价值和意义的。

 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2020-07-08 15:29:05

MacJava编程语言

2021-08-09 09:00:00

Kubernetes云计算架构

2021-09-15 08:00:00

Windows 11Windows微软

2023-06-25 18:53:03

2022-06-10 10:01:17

MacDockerLinux

2015-07-31 15:35:09

Mac安装Windows 10

2014-06-30 09:27:17

UbuntuTomcat集群

2009-07-17 16:17:04

在tomcat上配置j

2019-12-11 14:27:39

数据库集群Kubernetes

2022-03-17 14:56:26

KubernetesMinikubeLinux

2023-07-29 11:54:44

KuberneteNFS

2009-04-08 15:56:31

Linux路由MAC绑定

2015-11-24 14:14:00

CentOS 7.0Ceph配置

2013-03-06 13:27:03

HadoopLinux

2015-11-30 15:05:01

Linux浏览器Docker

2019-10-21 13:28:38

UbuntuPostgreSQL命令

2020-05-25 17:40:00

MacpyenvPython

2016-01-06 14:00:20

Ubuntu 14Ubuntu 15Apache Solr

2020-03-18 14:40:14

Ubuntu 18.0RedisLinux

2022-12-27 08:51:31

WebDebian 11
点赞
收藏

51CTO技术栈公众号