准备 VPS 以使用 Kubespray 安装 Kubernetes

Prepare VPS for installing Kubernetes with Kubespray

我有 3 个 VPS 基于 Ubuntu 18.04 服务器,想构建一个 kubernetes 集群。

我打算使用 Kubespray 安装 Kubernetes 集群,我的问题是:

  • How to prepare servers, that they can talk to each other

要准备 Ubuntu 个实例来安装 Kubernetes,您可以查看 this 指南。 使用 kubespray documentation 创建集群。

  • How to setup the firewall, that the communication between VPS do not block
  • Is it possible to configure the firewall, to open particular port for a particular IP address. For example, only a VPS with 1.11.111.110 is allowed to access the port 10255 on VPS 1.11.111.111.

你可以使用 iptables 从你的节点制定特定规则,但我认为手动管理这些服务规则将是一个挑战......你可以尝试,但它真的很难管理和维护.

What else do I have to consider?

我推荐此设置以了解 Kubernetes 的工作原理和测试目的,但它不是生产就绪的,您的节点的安全性可能会受到损害,因为您在互联网上暴露了 Kubernetes 端口。

你也可以考虑用kubernetes做单节点,看看是这样的link.

如果您使用的是 Kubespray,我强烈建议您遵循他们的指南和文档。它们非常全面和详细。

https://kubespray.io/#/

在当前版本中,Kubespray 是 kubeadm 的综合包装器,添加了 kubeadm 本身缺少的许多功能。

简而言之,准备主机就是允许从控制机器(通常是您自己的桌面)进行远程 SSH,准备清单,仔细检查其所有 *.yaml 文件。配置清单并在 VPS 主机上安装一些 python 依赖项后,只需从终端启动 Kubespray 并等待即可。

请记住,它不是一个完美的工具,并且在集群生命周期中存在缺陷。但它至少会让您抢先一步,引导一个完整的生产就绪集群。

这是我填写的你可以做的 -

  1. 如何准备服务器? - 我使用 vagrant 启动服务器
  2. 如何设置防火墙? - 您可以为您在 vagrant 文件中定义的 IP 设置防火墙规则,或者禁用节点之间的防火墙。

我建议阅读以下指南,其中涵盖了我使用 kubespray 设置 kubernetes 集群的所有步骤 -

https://jhooq.com/kubespray-12-steps-for-installing-a-production-ready-kubernetes-cluster/

还要考虑 Ubuntu 您可能不想要的事情,例如检查交换(即使您没有交换)和禁用无人值守的升级,这可能会导致其他功能强大的系统崩溃:

sudo swapoff -a && \
apt remove unattended-upgrades -y && \
killall -9 unattended-upgr 2>/dev/null