前言:

本文的目標為在 macOS 上開兩個 ubuntu 虛擬機並將他們納入 Kubernetes 環境,且可從 macOS 本機連接。

  • Multipass : 在 macOS 快速建立 ubuntu 虛擬機。
  • K3s : 輕量化的 K8s(Kubernetes)。

安裝 kubectl:

1
brew install kubectl

安裝 Multipass:

1
brew install multipass --cask

創建兩台虛擬機:

  • 鑒於筆者後面開發時遇到的巨坑經驗,如果可以的話虛擬機資源還是給多一點吧,server 給到 4G RAM 會對之後的開發友善許多。
1
2
3
multipass launch --name k8s-server --mem 1G --disk 5G --cpus 1

multipass launch --name k8s-worker --mem 1G --disk 5G --cpus 1

檢查虛擬機狀態順便記下 IP 後面會用到:

1
multipass list

在 server 虛擬機上安裝 k3s:

1
2
3
multipass shell k8s-server

curl -sfL https://get.k3s.io | sh -

複製 server 虛擬機上的設定:

1
cat /etc/rancher/k3s/k3s.yaml

回到本機,將剛剛複製完的設定貼進本機設定檔:

1
2
3
4
vim ~/.kube/config

# 或是
vim /Users/<userName>/.kube/config

貼上之後記得將本機設定檔裡的 cluster 的 server 位置改成 server 虛擬機 IP:

1
2
# 注意要 s 和指定 6443 port
server: https://<your_server_node_ip>:6443

本機輸指令確認是否成功:

1
2
3
kubectl get nodes

kubectl cluster-info

印出 server 虛擬機的 node-token,待會用到:

1
multipass exec k8s-server sudo cat /var/lib/rancher/k3s/server/node-token

在 worker 虛擬機上安裝 K3s 並加入叢集:

1
2
3
multipass shell k8s-worker

curl -sfL https://get.k3s.io | K3S_URL=https://<your_server_node_ip>:6443 K3S_TOKEN="<your_server_node_token>" sh -

回到本機輸指令確認是否成功:

1
kubectl get nodes -owide

不想打那麼多指令嗎?

參考我的另一篇文章:使用 Portainer 圖形化工具管理 K3s 叢集

參考: