0
点赞
收藏
分享

微信扫一扫

基于Calico和openSUSE Kubic部署Kubernetes群集

导言

openSUSE Kubic是基于openSUSE MicroOS的一个认证Kubernetes发行版。Calico是一个开源项目,Kubernetes可以使用它将部署集群pod的网络。在本博客中,我将展示如何通过虚拟机部署基于Calico和openSUSE Kubic的Kubernetes集群。我们将部署一个包含一个主节点(Master)和一个辅助节点(Worker)的集群。

我本来打算使用Oracle VM VirtualBox然而,在我的机器上,当我试图在使用VirtualBox安装的openSUSE Kubic上运行kubeadm时,它总是卡在watchdog:BUG:soft lockup-CPU上,同时CPU使用率达到100%。当我切换到了VMware Workstation Pro时,该问题便解决了。我猜这是由VirtualBox的一些bug引起的。

步骤

创建虚拟机并安装openSUSE Kubic

在这里,我不会解释如何做这些事情,而是分享一些注意事项,如果你还不知道怎么做或有任何问题,可以自行搜索参考相关文档资料。

  • 下面是我对虚拟机的配置。建议您的主机具有大于8GB的内存,以便可以为虚拟机分配超过3GB的内存,使其平稳运行。为了使虚拟机彼此连接,也为了连接到互联网,可以将网络适配器设置为桥接(自动)

  • 对于openSUSE Kubic的安装,当涉及到选择系统角色时,请记住选择kubeadm Node,因为如果您选择使用Kubic,它将为群集使用Weave部署pod网络,而不是Calico。

  • 我建议可以在一个虚拟机中安装openSUSE Kubic,稍后成功安装后,克隆该虚拟机,将一个指定为一个主节点(Master),另一个指定为辅助节点(Worker)。记住需要选择完整的克隆。

配置主机

当您引导进入到主节点虚拟机时,可以在通知部分看到您的IP地址。就我而言,是192.168.1.14。将此IP记下。


为了方便复制和粘贴命令,我们可以使用SSH登录系统。要进行相关配置的话,首先,使用root帐户登录系统。其次,执行vi /etc/ssh/sshd_config.d/10-enable-root-password.conf,键入’i`插入,请将以下内容写入文件:

PasswordAuthentication yes
PermitRootLogin yes

这将启用SSH根密码登录,如果您在生产环境中,不建议这样做。编辑完成后,按[ESC],然后键入:wq保存并退出。


Kubeadm Init

运行kubeadm config images pull,以拉取Kubernetes所需的容器映像。

如果默认registry.opensuse.org下载速度太慢,您还可以在您所在的位置指定--image repository。在中国大陆,可以使用Aliyun来加速:kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers

然后运行kubeadm init --apiserver-advertise-address=<Your Master IP Address> --pod-network-cidr=192.168.0.0/16,用您刚才记下的IP地址替换<Your Master IP address>。如果在最后一步中指定了--image-repository,请也将其附加到此命令中。


等待它完成,然后记下worker节点加入的命令。

在你的终端里执行export KUBECONFIG=/etc/kubernetes/admin.conf来让kubectl工作。

部署Calico

通过curl -O https://docs.projectcalico.org/manifests/calico.yaml获取印花布配置yaml文件的最新副本.

通过sed -i 's#/usr/libexec/kubernetes/kubelet-plugins/volume/exec#/var/lib/kubelet/volume-plugin#g' calico.yaml更改安装FlexVolume驱动程序的路径。因为在 Transactional(Atomic)类系统中/usr/libexec/kubernetes 是只读的.

最后,使用kubectl apply -f calico.yaml应用yaml文件。

等待所有的pods都可用。

watch kubectl get pods --all-namespaces

如果在特定pod上等待的时间太长,可以检查pod的事件信息以获取错误消息:kubectl describe pods -n kube-system <Pod Name>

配置辅助节点(Worker)

启动辅助节点(Worker)虚拟机,以root用户身份登录,更改主机名,因为主机名不能与主机名相同:hostnamectl set-hostname 'worker'

最后,执行刚才提到的worker 节点加入命令,忽略hostname could not be reached警告,因为我们没有也不需要配置DNS。

然后等待辅助节点(Worker)可用,完成!

举报

相关推荐

0 条评论