# Kubernetes-MicroK8s 學習筆記 [Snap MicroK8s](https://microk8s.io/) MicroK8s 由 Ubuntu Snap 維護,其特點是輕量、不需要額外安裝虛擬機,所以在開發的時候能夠不佔用多餘的系統資源,並且能夠透過指令快速的重啟與關閉。 --- ## 安裝 安裝 Microk8s ```bash= sudo snap info microk8s sudo snap install microk8s --classic sudo usermod -a -G microk8s [user-name] sudo chown -f -R [user-name] ~/.kube sudo reboot ``` 更新防火牆規則 ```bash= sudo ufw allow in on cni0 && sudo ufw allow out on cni0 sudo ufw default allow routed ``` 安裝 ubuntu 虛擬機管理工具 ```bash= sudo snap install multipass ``` --- ### 基本指令與設定 **查詢** * MicroK8s 狀態與啟用的插件 ```bash= microk8s.status --wait-ready ``` * MicroK8s 安裝與運作狀況 ```bash= microk8s.inspect ``` * MicroK8s 查詢服務分配 IP ```bash= microk8s.kubectl get all --all-namespaces ``` * k8s 的設定檔案 ```bash= microk8s.config ``` **啟動/關閉** * microk8s.enable [addon-name] : 啟用指定套件 * microk8s.disable [addon-name] : 停用指定套件 常用套件介紹: * dns: 啟用 DNS,常用於不同服務之間溝通,強烈建議啟用該套件 * dashboard: 啟用用來觀看服務運作的儀表板 (含 grafana 與 influxdb) * storage: 建立一個預設的 storage (會指令本機目錄的 hostpath-provisioner * ingress: 建立路口控制器 * gpu: 將 GPU 啟用給 MicroK8s 使用 (本機需安裝 NVIDIA 驅動程序) * istio: 啟用 Istio 服務,啟用後可以使用 microk8s.istioctl 指令. * registry: 建立一個 private 的 docker registry (開在 localhost:32000). 基本操作: MicroK8s 開啟常用服務 ``` microk8s enable dns dashboard storage ``` MicroK8s 取得 token 來進行登入 ```bash= token=$(microk8s.kubectl -n kube-system get secret | grep default-token | cut -d " " -f1) microk8s.kubectl -n kube-system describe secret $token ``` 登錄 dashboard 服務 IP 並且輸入 token https 443 port 可能會被 chrome 瀏覽器擋住 ``` https://{service/kubernetes-dashboard}:443 ``` 關閉流程:重置後再關閉 ```bash= microk8s.reset microk8s.stop ``` 查看目前啟動服務 ``` watch microk8s.kubectl get all ``` --- **外部控制** * 用來與 kubernetes 互動 ```bash= microk8s.kubectl ``` * 用來與 istio services 互動 ```bash= microk8s.istioctl ``` > 註: > microk8s.kubectl == kubectl > microk8s.istioctl == istioctl --- > https://xenby.com/b/254-%E6%95%99%E5%AD%B8-%E8%BC%95%E9%87%8F-kubernetes-microk8s-%E5%AE%89%E8%A3%9D%E8%88%87%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97 ---