腾讯云 Lighthouse 同地域组建 Kubernetes 集群插图

环境要求

所有节点须为全新安装的 Debian11/12 或 Ubuntu22.04 操作系统。

脚本使用了腾讯云的 metadata 获取 IP,所有节点部署在腾讯云上同个地域(CVM、Lighthouse 均可)。

使用的组件

  • K3s: 一个轻量级的 Kubernetes 发行版,专为生产环境而设计。
  • Flannel: 一个虚拟网络层,用于为容器化工作负载创建网络隔离和通信。
  • Flannel-vxlan: 通过使用 Virtual Extensible LAN 技术创建一个虚拟的二层网络。

购买并配置 Lighthouse 服务器

Lighthouse 是腾讯云推出的一款轻量应用服务器产品,它提供了高性价比、高可用性、高安全性和高灵活性的云端计算服务。具体信息参阅官方文档:轻量应用服务器概述。

为了部署 Kubernetes 集群,我们需要至少 2 台轻量应用服务器,并配置好相关的环境和依赖。购买步骤参见官方文档:快速创建 Linux 实例,操作系统选 Debian 或 Ubuntu 最新版本。

设置防火墙

请参考下面的列表,在腾讯云控制台设置防火墙规则。若无需精细控制的,可以设置为允许所有节点间 TCP/UPD 协议的全部端口互访。

协议端口目标描述
TCP6443节点节点K8s API Server
TCP10250所有节点所有节点Kubelet 指标收集
UDP8472所有节点所有节点Flannel vxlan
TCP5432-9876所有地址所有节点自定义 Node Port ,可选
UDP5432-9876所有地址所有节点自定义 Node Port ,可选
TCP80,443所有地址所有节点Web 服务,可选

部署 K3S 主节点

在主节点服务器上执行以下代码,注意将 SERVER_TOKEN 替换为一个不少于 32 个字母的随机字符串。

export SERVER_TOKEN=r83nui54eg8wihyiteshuo3o43gbf7u9er63o43gbf7uitujg8wihyitr6

export INSTALL_K3S_SKIP_DOWNLOAD=true
export DOWNLOAD_K3S_BIN_URL=https://github.com/k3s-io/k3s/releases/download/v1.28.2%2Bk3s1/k3s

if [ $(curl -Ls http://ipip.rehi.org/country_code) == "CN" ]; then
   DOWNLOAD_K3S_BIN_URL=https://ghproxy.com/${DOWNLOAD_K3S_BIN_URL}
fi

curl -Lo /usr/local/bin/k3s $DOWNLOAD_K3S_BIN_URL
chmod a+x /usr/local/bin/k3s

curl -Ls https://get.k3s.io | sh -s - server \
    --cluster-init \
    --token $SERVER_TOKEN \
    --service-node-port-range 5432-9876

部署 K3S 子节点

在子节点服务器上执行以下代码,注意将 SERVER_TOKEN 替换为和主节点相同的随机字符串,SERVER_IP 替换为主节点的内网 IP 地址(在主节点执行命令 curl -Ls http://metadata.tencentyun.com/latest/meta-data/local-ipv4 即可获取)。

export SERVER_IP=10.0.12.6
export SERVER_TOKEN=r83nui54eg8wihyites```shell to=markdown code<|im_sep|>huo3o43gbf7u9er63o43gbf7uitujg8wihyitr6

export INSTALL_K3S_SKIP_DOWNLOAD=true
export DOWNLOAD_K3S_BIN_URL=https://github.com/k3s-io/k3s/releases/download/v1.28.2%2Bk3s1/k3s

if [ $(curl -Ls http://ipip.rehi.org/country_code) == "CN" ]; then
   DOWNLOAD_K3S_BIN_URL=https://ghproxy.com/${DOWNLOAD_K3S_BIN_URL}
fi

curl -Lo /usr/local/bin/k3s $DOWNLOAD_K3S_BIN_URL
chmod a+x /usr/local/bin/k3s

curl -Ls https://get.k3s.io | sh -s - agent \
    --server https://$SERVER_IP:6443 \
    --token $SERVER_TOKEN

验证集群

在主节点执行下面的命令,查看节点和容器状态:

kubectl get node kubectl top node kubectl get pods -A
腾讯云 Lighthouse 同地域组建 Kubernetes 集群插图1

以上是关于腾讯云 Lighthouse 同地域组建 Kubernetes 集群的详细步骤。希望这篇文章能对你有所帮助!