如何在Mac上配置Kubernetes
by liam zheng on 9 July 2019
Mac用户可使用MicroK8s运行Kubernetes环境进而开发、测试应用。通过下面的步骤可轻松搭建此环境。
MicroK8s 是一个Ubuntu推出的一个本地的Kubernetes版本。它是一个轻量级的snap应用,可安装到PC上作为一个单节点集群使用。尽管MicroK8s仅针对Linux构建,但是也可以在Mac上启Ubuntu VM来实现。
MicroK8s可在Ubuntu和任意支持snap的OS上运行全部原生的Kubernetes服务。这对于开发应用,创建简单的K8s集群和本地微服务开发非常有帮助,所有的开发工作最终都还是需要部署的。
MicroK8s提供另一个级别的可靠性因为它提供了与当前Kubernetes版本一致的开发环境。 在最新的上游K8s发布后的一周内,在Ubuntu上即可使用。(以下简称Kubernetes为K8s)
在Mac上配置Kubernetes
K8s和MicroK8s都需要一个Linux内核来工作,因此2者都需要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
接下来,用下面命令检查部署进程:
multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl get all --all-namespaces
返回信息如下:
一旦所有的必要服务已开启,接下来使用以下的链接访问仪表。命令如下:
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'.
如果我们在VM内,可以用此链接来访问Grafana仪表。不过,我们可以通过代理在主机上访问。
multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl proxy --address='0.0.0.0' --accept-hosts='.*'
Starting to serve on [::][::]:8001
保持终端运行状态,记一下端口号(8001),我们在下一步需要用到。要访问Grafana仪表,我们需要修改VM内仪表的链接:
总结
使用MicroK8s在本地开发和测试应用,将使得团队在部署上更快,这对于开发者和DevOp团队来说是非常有价值和意义的。
订阅博客文章
查看更多内容
Canonical 发布 Ubuntu 24.10 Oracular Oriole
最新版 Ubuntu 具备最先进的内核以及增强的桌面安全性 Canonical 发布 Ubuntu 24.10,代号“Oracular Oriole”,用户可前往下载并安装。 Ubuntu 24.10 具备最新的内核、工具链和 GNOME 47 桌面环境,同时在软件安全性方面进行了重大改进。 “Oracular Oriole 为提供最新的上游内核和工具链设定了新的步伐。”Canonical 首席执行官 Mark Shuttleworth 称,“实验性的新增安全功能表明了我们致力于在未来 20 年甚至更长时间内保持社区互动沟通,不断提升 Linux 桌面体验的决心。” 免费下载 Linux 6.11 提供最新的硬件支持 Ubuntu 24.10 采用了 Linux 6.11 […]
如何为企业选择最合适的企业数据存储解决方案?
围绕 IT 基础架构所做的选择对业务成本和性能都有很大的影响,其中涉及到运营、财务、数据分析和市场营销等多个领域。鉴于数据在所有这些领域中的重要性,甚至是在整个企业中的重要性,在选择新的存储系统时做出正确的决定至关重要。本篇文章将介绍选择时的一些考虑因素,以确保您在成本效益和性能之间取得平衡。 一、性能 存储性能涉及多个维度,首先来考虑最简单的度量指标: IOPs(Input/Output operations per Second)– 每秒输入/输出操作数,即一秒钟内可处理的操作次数。 响应时间(Response time)– IO 操作处理后安全存储到存储系统中并向请求应用程序发送确认信息所耗用的时间。 带宽(Bandwidth)– 一秒钟内可以传输的数据量的度量方 […]
Charmed PostgreSQL 全面上市
值得信赖的企业级 PostgreSQL Canonical 正式发布 Charmed PostgreSQL,这是一款企业级解决方案,有助于确保安全性,可自动完成 PostgreSQL 数据库在私有云和公共云上的部署、维护和升级。 PostgreSQL 是一个开源数据库管理系统。已在 IT 领域应用超过 30 年。成熟的技术、活跃的社群使其始终成为开发人员的首选 DBMS。 Canonical 推出的 Charmed PostgreSQL 便以此为基础进行构建并提供额外的功能,能够满足您的一切企业需求: 长达 10 年的安全维护和支持 订阅 Ubuntu Pro,即可购买 Charmed PostgreSQL 安全与支持服务。Ubuntu Pro 订阅提供长达 10 年的安 […]