前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【轻量应用服务器】玩转 K3s

【轻量应用服务器】玩转 K3s

原创
作者头像
Jokey
修改2024-11-08 21:48:09
修改2024-11-08 21:48:09
1800
举报
文章被收录于专栏:云原生搬运工云原生搬运工

背景介绍

什么是轻量应用服务器(TencentCloud Lighthouse)?

产品优势介绍参考文档 产品概述

什么是 K3s

K3s 是轻量级的 Kubernetes(简称 K8S), K3s 易于安装,仅需要 Kubernetes 内存的一半,所有组件都在一个小于 100 MB 的二进制文件中。

如此的轻量级刚好与轻量应用服务器完美匹配,是在轻量应用服务器上使用 k8s 管理容器的不二之选,接下来我将以单控制面节点集群为例,手把手介绍在轻量服务器上安装时常见的注意事项以及如何定制化 k3s 配置,助力业务容器化,拥抱容器云原生。

安装准备

1.关闭系统自带防火墙软件

建议使用轻量服务器防火墙配置访问策略,关闭系统自带 ufw 防火墙(Ubuntu/Debian),其他系统参考官网说明

代码语言:bash
复制
# 查看 ufw 状态
root@VM-0-15-ubuntu:~# ufw status
Status: inactive # 表明没有开启,如果是 active, 使用命令 ufw disable 关闭

2.服务器防火墙配置

k3s 默认使用 Flannel VXLAN 网络插件,没有特殊情况建议使用默认,如果要使用其他网络插件,防火墙配置参考官网说明

在轻量云服务器控制台的相关节点按照如下说明配置防火墙规则:

协议

端口

源端

目的端

说明

TCP

6443

Agent节点

控制面节点

Apiserver端口,Agent 节点需要连接请求 Server 端 Apiserver 交互。

UDP

8472

Agent+控制面节点

Agent+控制面节点

跨节点Pod 间通信的 vxlan 端口, 如果不跨节点通信可以不放通

TCP

10250

Agent+控制面节点

Agent+控制面节点

k3s 节点的指标接口,如果不想采集指标可以不放通

3. 官网安装脚本介绍

安装时可以直接使用官方提供的一键安装脚本(需要联网,不适用离线安装),方便快捷,说明如下:

Server端(控制面节点):

代码语言:bash
复制
# 国外服务器,直接使用
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 节点)加入集群:

代码语言:bash
复制
# 国外服务器,直接使用
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端)。

1. 先在境外服务器执行脚本安装 server 端:

代码语言:bash
复制
# 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

2. 安装完 Server 端后,安装境内的 Worker 节点并加入集群:

代码语言:bash
复制
# 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

3. 检查安装是否成功

执行安装过程未发生报错,且安装命令执行结束后,可以在 Server 端节点 kubectl get node 验证,如下图:

若安装worker 节点卡在启动 agent 阶段,检查下 Server 端 6443 端口是否放通 worker 节点 IP

代码语言:txt
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景介绍
  • 安装准备
    • 1.关闭系统自带防火墙软件
    • 2.服务器防火墙配置
    • 3. 官网安装脚本介绍
  • 安装实践
    • 1. 先在境外服务器执行脚本安装 server 端:
    • 2. 安装完 Server 端后,安装境内的 Worker 节点并加入集群:
    • 3. 检查安装是否成功
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档