怎么进行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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。