如何在 Mac 上配置 Kubernetes
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
接下來,用下面命令檢查部署程式:
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 內儀表的連結:
- 使用 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 團隊來說是非常有價值和意義的。
相關文章
- 如何在mac電腦上配置命令列工具Mac命令列
- 如何在Mac上使用DockerMacDocker
- 如何在Mac上使用“接力”功能?Mac
- 如何在 Mac上插入特殊字元Mac字元
- 如何在 Ubuntu 上配置網橋Ubuntu
- 如何在Mac下配置Ruby環境Mac
- 如何在Mac上重置列印系統?Mac
- 如何在Mac上使用表情符號Mac符號
- 如何在Mac上重建Spotlight索引Mac索引
- 如何在Mac上OCR PDF教程安利~Mac
- 如何在 Mac 上使用 Ctrl + Alt + Delete?Macdelete
- 如何在Mac上使用螢幕共享Mac
- 如何在 Mac 上錄製螢幕Mac
- 如何在蘋果Mac上開啟AirDrop?蘋果MacAI
- 如何在Windows上遠端控制MacWindowsMac
- 如何在PC上安裝Mac OSMac
- 如何在Mac上重置MySQL根密碼MacMySql密碼
- 如何在Mac上訪問任務控制Mac
- win系統如何在mac上執行Mac
- 如何在Mac 上設定虛擬 VPNMac
- 如何在蘋果Mac上刪除APFS卷?蘋果Mac
- mac上php+nginx配置MacPHPNginx
- Mac上配置React NativeMacReact Native
- 如何在 CentOS 7.0 上配置 Ceph 儲存CentOS
- 如何在Mac上釋放記憶體?Mac清除RAM教程Mac記憶體
- 如何在mac蘋果電腦上長截圖Mac蘋果
- 新手必看:如何在Mac上重建Spotlight索引Mac索引
- 如何在Mac上設定韌體密碼Mac密碼
- 如何在Mac上忘記無線網路Mac
- 如何在Mac上減少PDF檔案大小Mac
- 如何在mac本上安裝android sdkMacAndroid
- 如何在Mac上安裝IntelliJ IDEAMacIntelliJIdea
- mac上如何配置flutter之安卓MacFlutter安卓
- Mac上Git安裝與配置MacGit
- Mac新手使用技巧——如何在Mac上優化儲存空間Mac優化
- 如何在 CentOS 8 上配置和管理防火牆CentOS防火牆
- 如何在Mac上隱藏紅色通知標記Mac
- 如何在M1或Intel Mac上重置NVRAMIntelMacVR