怎么进行MicroK8s快速入门

61次阅读
没有评论

共计 5214 个字符,预计需要花费 14 分钟才能阅读完成。

怎么进行 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

MicroK8s 将安装一个轻量级的 Kubernetes,可以用于任何机器。通过 snap 安装,如下:

sudo snap install microk8s --classic --channel=1.17/stable

关于如何设置,参考: channel ›

Raspberry Pi/ARM

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

添加 group

MicroK8s 创建 group 用于 commands 的操作,需要 admin 权限。通过下面方式添加:

sudo usermod -a -G microk8s $USER

需要重新打开当前控制台:

su - $USER

检查状态

MicroK8s 有内置命令显示状态。安装时使用参数
 
 –wait-ready
  等待  Kubernetes services 初始化。

microk8s.status --wait-ready

访问 Kubernetes

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

使用 add-ons

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 将会一直运行,使用下面的命令来启动或停止:

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 快速入门的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计5214字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)