您好,登錄后才能下訂單哦!
怎么進行MicroK8s快速入門,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
MiroK8s是目前最小、最快與Kubernetes全面兼容的集群系統,主要用于工作站和小型團隊,但是目前鏡像并沒有與snap打包在一起,還在gcr.io上,國內下載上還是有問題。MicroK8s適合離線開發、原型開發和測試,尤其是運行VM作為小、便宜、可靠的k8s用于CI/CD。支持arm架構,也適合開發 IoT 應用,通過 MicroK8s 部署應用到小型Linux設備上。
操作系統 Ubuntu 18.04 LTS 或16.04 LTS 環境 (或其他支持 snapd
的操作系統- see the snapd documentation)。
至少 20G 磁盤空間, (建議)4G 內存。
internet connection(需要能訪問gcr.io)
注意:如果沒有上面的硬件環境,其它方式安裝 MicroK8s,包括其它操作系統和離線部署,參考 alternative install 頁面。
MicroK8s 將安裝一個輕量級的 Kubernetes,可以用于任何機器。通過snap安裝,如下:
sudo snap install microk8s --classic --channel=1.17/stable
關于如何設置,參考: channel ?
Running MicroK8s on some ARM hardware may run into difficulties because cgroups (required!) are not enabled by default. This can be remedied on the Rasberry Pi by editing the boot parameters:
sudo vi /boot/firmware/nobtcmd.txt
Note:In older Raspberry Pi versions the boot parameters are in /boot/firmware/cmdline.txt
.
加上:
cgroup_enable=memory cgroup_memory=1
MicroK8s 創建 group 用于 commands的操作,需要admin權限。通過下面方式添加:
sudo usermod -a -G microk8s $USER
需要重新打開當前控制臺:
su - $USER
MicroK8s 有內置命令顯示狀態。安裝時使用參數
--wait-ready
等待 Kubernetes services 初始化。
microk8s.status --wait-ready
MicroK8s 綁定自己的 kubectl
版本用于訪問 Kubernetes集群。
microk8s.kubectl get nodes
查看服務:
microk8s.kubectl get services
MicroK8s 使用命名空間化的 kubectl
命令以防止其它的kubectl安裝的沖突。如果沒有其他安裝,也可以添加別名 (append to ~/.bash_aliases
) ,如:
alias kubectl='microk8s.kubectl'
使用 kubectl
命令來訪問Kuberenetes,如(國內換成其它的鏡像,因為gcr.io訪問不到):
microk8s.kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1
檢查狀態:
microk8s.kubectl get pods
使用helm來部署應用會簡單很多,而且方便部署大型應用。不過,我在MicroK8s里還沒有試過,不知道能否全部兼容。
Helm使用參考:
Helm hub,https://hub.helm.sh
Helm 3簡介,https://www.oschina.net/news/111342/helm-3-0-released
Helm 源碼,https://github.com/helm/helm
MicroK8s 使用盡可能少的輕量級 Kubernetes組件。但是通過 "add-ons">
目前KubeFlow支持還有些問題:
目前的KubeFlow0.7.1只能支持Kubernetes1.16以下版本,但是MicroK8s的1.16版本還沒有KubeFlow的集成,K8s的1.16及以上版本運行KubeFlow還有些問題。
參考:KubeFlow-在Microk8s部署與應用
建議添加 DNS 管理以方便服務的通訊。對于需要存儲的應用 'storage' add-on 提供主機的目錄空間。比較容易設置:
microk8s.enable dns storage
查看完整的插件列表,參考:
See the full list of addons ?
MicroK8s 將會一直運行,使用下面的命令來啟動或停止:
microk8s.stop
... 將會停止 MicroK8s 及其 services。可以再次啟動,使用:
microk8s.start
在MicroK8s里,不再由kubelet來啟動apiserver等容器,而是全部由systemd來管理apiserver/scheduler/controller-manager,而且容器由containerd進行管理(而不是docker),可以通過microk8s.ctr來查看容器相關的信息。
服務:
ubuntu@ubuntu:/etc/systemd/system$ ls -l -rw-r--r-- 1 root root 255 Apr 8 10:38 snap-microk8s-1295.mount -rw-r--r-- 1 root root 509 Apr 8 10:38 snap.microk8s.daemon-apiserver-kicker.service -rw-r--r-- 1 root root 488 Apr 8 10:38 snap.microk8s.daemon-apiserver.service -rw-r--r-- 1 root root 500 Apr 8 10:38 snap.microk8s.daemon-cluster-agent.service -rw-r--r-- 1 root root 491 Apr 8 10:38 snap.microk8s.daemon-containerd.service -rw-r--r-- 1 root root 515 Apr 8 10:38 snap.microk8s.daemon-controller-manager.service -rw-r--r-- 1 root root 473 Apr 8 10:38 snap.microk8s.daemon-etcd.service -rw-r--r-- 1 root root 485 Apr 8 10:38 snap.microk8s.daemon-flanneld.service -rw-r--r-- 1 root root 482 Apr 8 10:38 snap.microk8s.daemon-kubelet.service -rw-r--r-- 1 root root 476 Apr 8 10:38 snap.microk8s.daemon-proxy.service -rw-r--r-- 1 root root 488 Apr 8 10:38 snap.microk8s.daemon-scheduler.service
查看服務的信息:
ubuntu@ubuntu:/etc/systemd/system$ sudo systemctl status snap.microk8s.daemon-kubelet ● snap.microk8s.daemon-kubelet.service - Service for snap application microk8s.daemon-kubelet Loaded: loaded (/etc/systemd/system/snap.microk8s.daemon-kubelet.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-04-16 11:35:59 UTC; 30ms ago Main PID: 18351 (snap) Tasks: 6 (limit: 4441) CGroup: /system.slice/snap.microk8s.daemon-kubelet.service └─18351 /usr/bin/snap run microk8s.daemon-kubelet Apr 16 11:35:59 ubuntu systemd[1]: Started Service for snap application microk8s.daemon-kubelet.
查看容器信息:
ubuntu@ubuntu:/etc/systemd/system$ sudo microk8s.ctr NAME: ctr - __ _____/ /______ / ___/ __/ ___/ / /__/ /_/ / \___/\__/_/ containerd CLI USAGE: ctr [global options] command [command options] [arguments...] VERSION: v1.2.5 COMMANDS: plugins, plugin provides information about containerd plugins version print the client and server versions containers, c, container manage containers content manage content events, event display containerd events images, image, i manage images leases manage leases namespaces, namespace manage namespaces pprof provide golang pprof outputs for containerd run run a container snapshots, snapshot manage snapshots tasks, t, task manage tasks install install a new package shim interact with a shim directly cri interact with cri plugin help, h Shows a list of commands or help for one command GLOBAL OPTIONS: --debug enable debug output in logs --address value, -a value address for containerd's GRPC server (default: "/run/containerd/containerd.sock") --timeout value total timeout for ctr commands (default: 0s) --connect-timeout value timeout for connecting to containerd (default: 0s) --namespace value, -n value namespace to use with commands (default: "default") [$CONTAINERD_NAMESPACE] --help, -h show help --version, -v print the version
其中,images和containers分別與docker的images和ps命令對應。
看完上述內容,你們掌握怎么進行MicroK8s快速入門的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。