最小化K8s環境部署之MicroK8s

這是我參與8月更文挑戰的第2天,活動詳情查看:8月更文挑戰node

一 背景

接上一篇最小化K8s環境部署之Minikube,除了minikube/kind外,還不很多其餘優秀的K8s環境部署工具,MicroK8s是目前最小、最快與Kubernetes全面兼容的集羣系統,主要用於工做站和小型團隊,可是目前鏡像並無與snap打包在一塊兒,還在gcr.io上,國內下載上仍是有問題。MicroK8s適合離線開發、原型開發和測試,尤爲是運行VM做爲小、便宜、可靠的k8s用於CI/CD。支持arm架構,也適合開發 IoT 應用,經過 MicroK8s 部署應用到小型Linux設備上。linux

二 MicroK8s特色

  • MicroK8輕巧 :團隊成員但願最小的Kubernetes用於筆記本電腦和工做站的開發。 MicroK8s提供了輕量級的獨立Kubernetes,在Ubuntu上運行時,它與Azure AKS,Amazon EKS和Google GKE兼容。
  • MicroK8很簡單 :MicroK8s經過單軟件包安裝來最大程度地減小管理和操做,該軟件包沒有活動部件(開箱即用),而且包括全部依賴項。
  • MicroK8是安全的 :對於全部安全問題,更新始終可用,而且能夠當即應用或安排更新以適合企業的維護週期。 此外,MicroK8具備最新的隔離功能,可在工做站上安全運行。 經過將Kubernetes,Docker.io,iptables和CNI的全部二進制文件打包在單個snap軟件包中,能夠實現這種隔離。
  • MicroK8是最新的 :MicroK8s跟蹤上游Kubernetes,並在上游Kubernetes發行的同一天發佈beta,發行候選版本和最終版本。 您能夠跟蹤最新的Kubernetes或堅持使用從1.10開始的任何Kubernetes版本。 當出現新的主要Kubernetes版本時,您能夠自動升級或使用單個命令進行升級。
  • MicroK8是全面的 :MicroK8s包括精選的清單,用於常見的Kubernetes功能和服務。 MicroK8帶有Docker註冊表,使用戶能夠在筆記本電腦上製做,推送和部署容器。

三 安裝部署

3.1 運行環境

  • 操做系統 Ubuntu 18.04 LTS 或16.04 LTS 環境 (或其餘支持 snapd 的操做系統- see the snapd documentation)。
  • 至少 20G 磁盤空間, (建議)4G 內存。
$ snap install microk8s --classic
2021-08-06T16:56:05+08:00 INFO Waiting for automatic snapd restart...
microk8s (1.21/stable) v1.21.3 from Canonical✓ installed
複製代碼

四 使用

$ microk8s kubectl get nodes
NAME             STATUS     ROLES    AGE    VERSION
vm-0-17-ubuntu   NotReady   <none>   2m7s   v1.21.3-3+90fd5f3d2aea0a
$ microk8s kubectl get services
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.152.183.1   <none>        443/TCP   2m27s
 # 檢測服務狀態
$ microk8s status --wait-ready
 # 啓用相關組建
$ microk8s enable dashboard dns registry istio
 # 查看k8s
$ microk8s kubectl get all --all-namespaces
 # 訪問dashboard
$ microk8s dashboard-proxy
 # 使用以有kubectl管理
$ sudo microk8s kubectl config view --raw > $HOME/.kube/config
 # 查看插件
$ microk8s.status
複製代碼

使用宿主機kubectl管理集羣git

$ curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl &&\ chmod +x ./kubectl &&\ $ mv ./kubectl /usr/bin/kubectl
 $ microk8s kubectl config view --raw > $HOME/.kube/config
$ kubectl get po -A
NAMESPACE     NAME                                      READY   STATUS     RESTARTS   AGE
kube-system   calico-kube-controllers-f7868dd95-s4c5m   0/1     Pending    0          5m33s
kube-system   calico-node-8mxlc                         0/1     Init:0/3   0          5m27s
複製代碼

五 其餘

與Minikube不一樣,IT管理員或開發人員可使用MicroK8s建立多節點集羣。若是MicroK8s在Linux上運行,甚至不須要VM。在Windows和macOS上,MicroK8s使用名爲Multipass的VM框架爲Kubernetes集羣建立VM。github

參考連接

相關文章
相關標籤/搜索