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

本文中的脚本针对同地域的腾讯云服务器组建Kubernetes集群进行优化。腾讯云多地域请参考 腾讯云多地域组建Kubernetes集群,跨云多地域请参考 跨云多地域组建Kubernetes集群(k3s)。

环境要求

  • 所有节点须为全新安装的Debian11/12 或Ubuntu22.04操作系统
  • 脚本使用了腾讯云的metadata获取IP,所有节点部署在腾讯云上同个地域(CVM、Lighthouse均可)

多账号、CVM、Lighthouse 混用,请先使用云联网打通内网

使用的组件

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

购买并配置Lighthouse服务器

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

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

设置防火墙

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

本文中将k8s默认的Node Port 端口30000-32767更改为了常用的5432-9876,读者朋友也可以根据自己的情况重新定义,只要保持service-node-port-range参数和防火墙放开的端口对应即可。

协议 端口 源 目标 描述
TCP 6443 子节点 主节点 K8s API Server
TCP 10250 所有节点 所有节点 Kubelet 指标收集
UDP 8472 所有节点 所有节点 Flannel vxlan
TCP 5432-9876 所有地址 所有节点 自定义 Node Port,可选
UDP 5432-9876 所有地址 所有节点 自定义 Node Port,可选
TCP 80,443 所有地址 所有节点 Web 服务,可选

部署K3S主节点

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

shell 复制代码
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即可获取)。

shell 复制代码
export SERVER_IP=10.0.12.6
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 - agent \
    --server https://$SERVER_IP:6443 \
    --token $SERVER_TOKEN

验证集群

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

shell 复制代码
kubectl get node
kubectl top node

kubectl get pods -A

须知 :本文同步自若海の技术写真,如有错漏请到原文下留言反馈。

相关推荐
openFuyao11 小时前
新增Agent沙箱调度能力!openFuyao v26.09社区发行版上线,AI原生基础设施能力进一步升级
云原生·ai-native·ai推理·openfuyao·多样化算力集群软件
谢亮_vipxieliang12 小时前
Kubernetes 1.36 深度解读:从 kubelet 安全到 GPU 原生调度的 70 项改进
安全·kubernetes·kubelet
阿里云云原生14 小时前
云效工作项智能优化:先澄清,再开工
云原生
阿里云云原生15 小时前
阿里云日志服务 SLS 全新升级,打造 Agent 时代的智能数据引擎
云原生
阿里云云原生15 小时前
从“治已病”到“治未病”:浩瀚能源与阿里云共建充电补能异地双活高可用体系实践
云原生
wzq11_66615 小时前
kubernetes集群——灰度发布
云原生·容器·kubernetes
阿里云云原生17 小时前
阿里云发布 Alibaba Cloud AI Agent Handbook,阐述“智能面积”
云原生
vipxieliang20 小时前
Kubernetes 的“操作系统化”:从容器编排到 AI 基础设施控制平面
kubernetes
Zhu75821 小时前
在k8s环境中,离线部署与使用Topograph
云原生·容器·kubernetes
A.说学逗唱的Coke1 天前
【人工智能专题】PolarDB 深度解析:存算分离到 AI Lakebase,云原生数据库的架构演进与实战指南
数据库·人工智能·云原生