本文介绍使用MicroK8s和Snap部署轻量级Kubernetes的方法,MicroK8s工具使你能够在Snap中运行最新的稳定上游Kubernetes版本,它只是一个k8s包,安装在大多数Linux版本和任何其他可以运行Snap的系统上,这适用于在Raspberry Pi、个人计算机和台式机等物联网设备上运行。
一、安装Snapd的参考文章 在Ubuntu 18.04/Debian上安装和使用Snap的方法 在Arch Linux/Manjaro系统上安装Snap的方法 在Fedora 29/Fedora 28上安装Snapd和Snap应用程序
二、安装MicroK8s 安装Snap后,你可以使用Snap启动MicroK8s安装,Snaps经常更新以匹配Kubernetes的每个版本: sudo snap install microk8s --classic
可以使用以下方式检查: 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.kubectl命令不满意,可以为其创建别名: echo "alias kubectl='microk8s.kubectl'" >>~/.bashrc source ~/.bashrc 然后可以使用kubectl命令: # kubectl get nodes -o wide
三、在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
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.kubectl expose deployment nginx --port 80 --target-port 80 \ --type ClusterIP --selector=run=nginx --name nginx service/nginx exposed # microk8s.kubectl get services
删除部署: # 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和容器相关的技能。
相关主题 |