怎么进行MicroK8s快速入门

发布时间:2021-12-15 18:41:09 作者:柒染
来源:亿速云 阅读:333

怎么进行MicroK8s快速入门,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

MiroK8s是目前最小、最快与Kubernetes全面兼容的集群系统,主要用于工作站和小型团队,但是目前镜像并没有与snap打包在一起,还在gcr.io上,国内下载上还是有问题。MicroK8s适合离线开发、原型开发和测试,尤其是运行VM作为小、便宜、可靠的k8s用于CI/CD。支持arm架构,也适合开发 IoT 应用,通过 MicroK8s 部署应用到小型Linux设备上。

运行环境

注意:如果没有上面的硬件环境,其它方式安装 MicroK8s,包括其它操作系统和离线部署,参考  alternative install 页面。

安装MicroK8s

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

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

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里还没有试过,不知道能否全部兼容。

使用 add-ons

MicroK8s 使用尽可能少的轻量级 Kubernetes组件。但是通过 "add-ons">

建议添加 DNS 管理以方便服务的通讯。对于需要存储的应用 'storage' add-on 提供主机的目录空间。比较容易设置:

microk8s.enable dns storage

查看完整的插件列表,参考:

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

推荐阅读:
  1. AppleScript 快速入门
  2. logstash快速入门

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

microk8s

上一篇:如何进行GitOps的原理分析

下一篇:linux如何修改path环境变量

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》