云网牛站
所在位置:首页 > Linux云服务器 > 使用MicroK8s和Snap部署轻量级Kubernetes的方法

使用MicroK8s和Snap部署轻量级Kubernetes的方法

2019-03-31 11:33:55作者:梁叹稿源:云网牛站

本文介绍使用MicroK8s和Snap部署轻量级Kubernetes的方法,MicroK8s工具使你能够在Snap中运行最新的稳定上游Kubernetes版本,它只是一个k8s包,安装在大多数Linux版本和任何其他可以运行Snap的系统上,这适用于在Raspberry Pi、个人计算机和台式机等物联网设备上运行。

 

一、安装Snapd的参考文章

在Ubuntu 18.04/Debian上安装和使用Snap的方法

在Arch Linux/Manjaro系统上安装Snap的方法

在CentOS 7系统中安装Snapd的方法

在Fedora 29/Fedora 28上安装Snapd和Snap应用程序

 

二、安装MicroK8s

安装Snap后,你可以使用Snap启动MicroK8s安装,Snaps经常更新以匹配Kubernetes的每个版本:

sudo snap install microk8s --classic

使用MicroK8s和Snap部署轻量级Kubernetes的方法

可以使用以下方式检查:

snap info microk8s

安装MicroK8s后,它将开始创建一个节点Kubernetes集群,可以使用检查此部署的状态:

# microk8s.status 

microk8s is running

addons:

jaeger: disabled

fluentd: disabled

gpu: disabled

storage: disabled

registry: disabled

ingress: disabled

dns: disabled

metrics-server: disabled

prometheus: disabled

istio: disabled

dashboard: disabled

从输出中,我们可以看到MicroK8s正在运行并且可用的插件状态。

要检查群集信息,请使用:

# microk8s.kubectl cluster-info

Kubernetes master is running at https://127.0.0.1:16443

获取k8s节点的状态:

# microk8s.kubectl get nodes

使用MicroK8s和Snap部署轻量级Kubernetes的方法

如果你对microk8s.kubectl命令不满意,可以为其创建别名:

echo "alias kubectl='microk8s.kubectl'" >>~/.bashrc

source ~/.bashrc

然后可以使用kubectl命令:

# kubectl  get nodes -o wide

使用MicroK8s和Snap部署轻量级Kubernetes的方法

 

三、在MicroK8上启用/禁用Kubernetes插件

可用于MicroK8的插件有:

dashboard:部署kubernetes仪表板以及grafana和Influxdb。

dns:部署kube dns。

storage:创建默认存储类,此存储类使用指向主机上目录的hostpath-provisioner,持久卷在${SNAP_COMMON}/default-storage下创建。

ingress:创建入口控制器。

istio:部署核心Istio服务,使用microk8s.istioctl命令管理部署。

registry:部署映像私有注册表并在localhost:32000上公开它。

metrics-server:部署度量服务器。

prometheus:部署Prometheus Operator v0.25。

fluentd:部署Elasticsearch-Kibana-Fluentd日志和监控解决方案。

jaeger:在“最简单”的配置中部署Jaeger Operator v1.8.2。

你可以启用和禁用Kubernetes可用的插件。

1、启用插件

使用microk8s.enable命令启用插件:

# microk8s.enable dashboard dns

Enabling dashboard

secret/kubernetes-dashboard-certs created

serviceaccount/kubernetes-dashboard created

deployment.apps/kubernetes-dashboard created

service/kubernetes-dashboard created

service/monitoring-grafana created

service/monitoring-influxdb created

service/heapster created

deployment.extensions/monitoring-influxdb-grafana-v4 created

serviceaccount/heapster created

configmap/heapster-config created

configmap/eventer-config created

deployment.extensions/heapster-v1.5.2 created

dashboard enabled

Enabling DNS

Applying manifest

service/kube-dns created

serviceaccount/kube-dns created

configmap/kube-dns created

deployment.extensions/kube-dns created

Restarting kubelet

DNS is enabled

启用存储插件:

# microk8s.enable storage

Enabling default storage class

deployment.extensions/hostpath-provisioner created storageclass.storage.k8s.io/microk8s-hostpath created

Storage will be available soon

要启用存储和Istio插件:

# microk8s.enable istio

相同的格式适用于其他插件,确认启用的插件:

# microk8s.status

microk8s is running

addons:

jaeger: disabled

fluentd: disabled

gpu: disabled

storage: enabled

registry: enabled

ingress: disabled

dns: disabled

metrics-server: disabled

prometheus: disabled

istio: disabled

dashboard: enabled

有关URL等更多信息,请使用:

microk8s.kubectl cluster-info

使用MicroK8s和Snap部署轻量级Kubernetes的方法

2、禁用插件

使用microk8s.disable命令禁用插件:

# microk8s.disable istio

Disabling Istio

namespace "istio-system" deleted

Istio is terminating

 

四、在MicroK8上部署Pod和容器

部署以标准Kubernetes方式完成,请参阅下面的示例,该示例将使用两个容器创建Nginx部署:

# microk8s.kubectl run nginx --replicas 2 --image nginx

# microk8s.kubectl get deployments

# microk8s.kubectl get pods

使用MicroK8s和Snap部署轻量级Kubernetes的方法

公开服务:

# microk8s.kubectl expose deployment nginx --port 80 --target-port 80 \ 

  --type ClusterIP --selector=run=nginx --name nginx

service/nginx exposed

# microk8s.kubectl get services

使用MicroK8s和Snap部署轻量级Kubernetes的方法

删除部署:

# microk8s.kubectl delete deployment nginx

deployment.extensions "nginx" deleted

# microk8s.kubectl delete service nginx

service "nginx" deleted

 

五、停止并重新启动MicroK8及删除MicroK8s的方法

1、停止并重新启动MicroK8

不使用时,你可以在不使用时关闭MicroK8:

# microk8s.stop

Stopped.

使用以下命令启动MicroK8s:

# microk8s.start

Started.

2、删除MicroK8s

如果想完全移除MicroK8,请先停止所有正在运行的Pod:

microk8s.reset

然后移除MicroK8s snap:

snap remove microk8s

 

结语

MicroK8s是最快、最轻量级的Kubernetes部署工具,它非常适合与Kubernetes组合,而不需要掌握Linux和容器相关的技能。

 

相关主题

使用Weave Net CNI在Ubuntu 18.04中设置3节点Kubernetes集群

精选文章
热门文章