构建Raspberry Pi上Kubernetes集群

背景知识视频教程

  • 完整的2019 Raspberry Pi训练营
  • 数据中心的Kubernetes
  • 学习Kubernetes

在本系列文章中,我将使用Raspberry Pi设备作为计算平台的基础来构建kubernetes集群。 Kubernetes是用于部署自动化,容器编排的流行系统; 它包含许多功能(扩展,负载平衡,卷管理,安全性及其他),因此我更喜欢将kubernetes称为生态系统。

在硬件级别上,我将仅使用任何计算机硬件商店中可用的便宜设备:路由器,交换机和存储服务器。

由于kubernetes满足了90%的软件需求,因此我仍然可以使用一些Ansible来实现自动化。现代的路由器,交换机和存储服务器都在UNIX之类的操作系统上运行,因此我也将使用它。

最终,kubernetes集群应该作为云基础架构工作,在这里我可以在类似云的环境中运行应用程序,可以从Internet访问它们,有状态的应用程序将能够使用数据存储层。

硬件设置

  • Mikrotik RB760iGS - 路由器,该设备为Kubernetes集群提供Internet连接,VLAN交换,DHCP服务器,NAT,动态DNS等
  • 凌华DGS-1005P - 具有4个PoE启用端口的非托管交换机。该交换机通过路由器和Kubernetes节点为Raspberry Pi提供电源和数据链路层交换
  • Raspberry Pi 3 B +型 - 带有1.4GHz 64位四核处理器,1GB RAM,千兆以太网的微型计算机
  • Raspberry Pi PoE HAT - Raspberry Pi扩展,可通过以太网为设备供电
  • microSDHC MIREX(class10)8GB - 具有Raspberry Pi操作系统的SD卡

上图,路由器是白框,交换机是黑框。黄色电缆是上行链路(交换机到路由器的连接)。灰色电缆将Raspberry Pi设备与交换机连接。

软件

  • Ubuntu 18.04:操作系统
  • Docker Engine:容器runtime
  • kubelet:在每个节点上运行的“节点代理”
  • kubeadm:用于创建Kubernetes集群的工具
  • kubectl:一个命令行界面,用于针对Kubernetes集群运行命令

列表不完整。 Kubernetes具有更多组件:kube-apiserver,kube-scheduler,kube-controller-manager,etcd,kubelet,kube-proxy和不可数的插件。有关详细信息,最好参考官方文档Kubernetes组件。

在这种情况下,kubeadm将在Kubernetes集群初始化时安装它们。

操作系统

Ubuntu 18.04具有用于Raspberry Pi的ARM 64构建和就绪的操作系统映像。 Google使用Kubernetes为ARM 64构建了deb软件包。

容器runtime和Kubernetes组件

我们将Docker Engine用于容器runtime并不奇怪。 尽管rkt,cri-o和其他方法中有替代方法。 但是,仔细观察,我们可以看到Kubernetes使用容器化。

kubelet是节点代理。它与主节点上的kube-apiserver通信,另一方面与本地容器运行时通信,以便将Docker容器作为主命令运行。

kubectl是一个命令行界面,用于针对Kubernetes集群运行命令。它可以在kubernetes中创建/读取/更新/删除资源。例如:

$ kubectl create -f deployment.yaml
$ kubectl create secret generic db-pass --from-file=./password.txt
$ kubectl get pods
$ kubectl --namespace=kube-system edit deployment coredns
$ kubectl delete node node1.kube.local

kubeadm是Kubernetes集群创建工具。在简单的情况下,kubeadm init命令创建一个kubernetes主节点。 kubeadm join命令通过将其与主节点关联来将节点加入集群。

创建集群

Kubernetes主节点和节点配置

设置kubernetes集群

在Kubernetes集群上部署测试应用

互联网网关简介

具有负载平衡功能的Internet网关

动态DNS

内容传递网络

详情参阅http://viadean.com/rpi_kubernetes_cluster.html

你可能感兴趣的:(Raspberry,Pi)