什么是轻量应用服务器(TencentCloud Lighthouse)?
产品优势介绍参考文档 产品概述 。
什么是 K3s
K3s 是轻量级的 Kubernetes(简称 K8S), K3s 易于安装,仅需要 Kubernetes 内存的一半,所有组件都在一个小于 100 MB 的二进制文件中。
如此的轻量级刚好与轻量应用服务器完美匹配,是在轻量应用服务器上使用 k8s 管理容器的不二之选,接下来我将以单控制面节点集群为例,手把手介绍在轻量服务器上安装时常见的注意事项以及如何定制化 k3s 配置,助力业务容器化,拥抱容器云原生。
建议使用轻量服务器防火墙配置访问策略,关闭系统自带 ufw 防火墙(Ubuntu/Debian),其他系统参考官网说明。
# 查看 ufw 状态
root@VM-0-15-ubuntu:~# ufw status
Status: inactive # 表明没有开启,如果是 active, 使用命令 ufw disable 关闭
k3s 默认使用 Flannel VXLAN 网络插件,没有特殊情况建议使用默认,如果要使用其他网络插件,防火墙配置参考官网说明。
在轻量云服务器控制台的相关节点按照如下说明配置防火墙规则:
协议 | 端口 | 源端 | 目的端 | 说明 |
---|---|---|---|---|
TCP | 6443 | Agent节点 | 控制面节点 | Apiserver端口,Agent 节点需要连接请求 Server 端 Apiserver 交互。 |
UDP | 8472 | Agent+控制面节点 | Agent+控制面节点 | 跨节点Pod 间通信的 vxlan 端口, 如果不跨节点通信可以不放通 |
TCP | 10250 | Agent+控制面节点 | Agent+控制面节点 | k3s 节点的指标接口,如果不想采集指标可以不放通 |
安装时可以直接使用官方提供的一键安装脚本(需要联网,不适用离线安装),方便快捷,说明如下:
Server端(控制面节点):
# 国外服务器,直接使用
curl -sfL https://get.k3s.io | <环境变量> sh - <Server启动参数>
# 如果是国内服务器,建议使用
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | <环境变量> INSTALL_K3S_MIRROR=cn sh - <Server启动参数>
命令中的变量(可选)说明:
<环境变量>
:在命令行安装时可以指定一些安装配置,通过环境变量指定,可以配置多个, 详情参考 环境变量。
<Server启动参数>
:在命令行安装时可以指定Server启动参数,通过参数可以配置多个, 参考 Server 节点支持的启动项。
Agent 端(Worker 节点)加入集群:
# 国外服务器,直接使用
curl -sfL https://get.k3s.io | K3S_URL=https://<Server端地址>:6443 <环境变量> K3S_TOKEN=<认证Token> sh - <Agent启动参数>
# 如果是国内服务器,建议使用
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://<Server端地址>:6443 <认证Token> sh - <Agent启动参数>
命令中的变量说明:
<Server端地址>
:控制面节点 IP 地址。
<认证Token>
:加入集群的认证 Token, 在 Server 节点通过 cat /var/lib/rancher/k3s/server/token 查看值。
<Agent启动参数>
:在命令行安装时可以指定 Agent 启动参数,通过参数可以配置多个, 参考 Agent节点支持的启动项。
服务器节点规划:境外一台 Master 节点(Server端), 境内一台 Worker 节点(Agent端)。
# server 端在境外直接使用https://get.k3s.io 脚本地址
# INSTALL_K3S_VERSION=v1.28.5+k3s1: 指定安装的 k3s 版本
# --node-external-ip=xxxx: 指定节点外部ip,同vpc可以使用节点内网ip, 本实践跨地域所以使用公网ip
# --advertise-address=xxxx: 指定广播地址,一般与node-external-ip 一致。
# --disable=metrics-server: 不开启默认安装的metrics-server 组件
# --node-name=master: 指定server端节点名为 master
# --node-label region=sg: 设置节点自定义label
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.28.5+k3s1 sh -s - --node-external-ip=xxxx --advertise-address=xxxx --disable=metrics-server --node-name=master --node-label region=sg
# 安装完后查看认证 token, Agent 节点加入集群需要用。
cat /var/lib/rancher/k3s/server/token
# Agent 节点在国内,因网络原因,使用国内源安装
# INSTALL_K3S_MIRROR=cn: 指定安装使用国内软件包源
# K3S_URL=https://xxxx:6443
# K3S_TOKEN=xxxxxx: 加入集群需要用的 Server 端认证 token
# --node-external-ip=xxxx: 指定节点外部ip,同vpc可以使用节点内网ip, 本实践跨地域所以使用公网ip
# --node-name=cn: 指定 Agent 节点名为 cn
# --node-label region=cn: 设置节点自定义label
# --docker: 指定容器运行时为docker
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_TOKEN=xxxxxx sh -s - --node-external-ip=xxxx --node-name=cn --node-label region=cn --docker
执行安装过程未发生报错,且安装命令执行结束后,可以在 Server 端节点 kubectl get node
验证,如下图:
若安装worker 节点卡在启动 agent 阶段,检查下 Server 端 6443 端口是否放通 worker 节点 IP
root@VM-0-15-ubuntu:~# kubectl get node
NAME STATUS ROLES AGE VERSION
cn Ready <none> 8s v1.28.5+k3s1
master Ready control-plane,master 2min v1.28.5+k3s1
如上若能获取到节点信息,节点也是 Ready ,说明安装过程是成功的,你已经拥有了一个全新的 K8s 集群。
本文手把手介绍如何快速使用轻量云服务器搭建一个轻量化的 K8s 集群(K3s),助力业务容器化部署, 提升业务可用性和运维效率。
腾讯云双十一官网活动链接:双11活动上云拼团Go
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。