前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes 领进门 | 使用 k3s 快速部署 kubernetes 集群

Kubernetes 领进门 | 使用 k3s 快速部署 kubernetes 集群

作者头像
若海
修改2023-08-17 15:12:10
12.3K0
修改2023-08-17 15:12:10
举报
文章被收录于专栏:云原生拾遗云原生拾遗

本教程适用于 Alpine/CentOS/Debian/Ubuntu内核版本大于4的操作系统系统,部分特别声明的步骤在其他操作系统可以忽略;本文部署环境基于本地内网、且服务器有多个可用网卡。

1、启用cgroup支持(仅Alpine系统执行)

代码语言:javascript
复制
if [ -f /etc/update-extlinux.conf ]; then
  if ! grep -q cgroup /etc/update-extlinux.conf; then
      mods="cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory"
      sed -i "s/rootfstype=ext4/rootfstype=ext4 $mods/" /etc/update-extlinux.conf
      update-extlinux
      reboot
  fi
fi

AlpineLinux 默认安装不支持 cgroup,所以需要修改启动项

2、预设临时环境变量(所有节点均需设置)

代码语言:javascript
复制
# k3s主服务器内网地址
export MY_SERVER_IP=172.21.0.11
# k3s认证令牌,任意字符串
export MY_TOKEN=943uoeitg4sh43589j38uj8irr439943oit
# 内部网卡设备号,`ifconfig` 查看
export MY_ETH_DEV=eth0
# 自动获取本机IP,若无法获取请手动指定
export MY_NODE_IP=`ip -o -4 addr list | grep $MY_ETH_DEV | awk '{print $4}' | cut -d/ -f1`

请务必根据自己的环境修改,否则可能无法启动服务 请在 3、4、5 步骤前分别执行,预设环境变量可以统一安装参数、降低出错概率

3、安装k3s主节点/一(仅第一主节点执行)

代码语言:javascript
复制
wget -qO- https://get.k3s.io | sh -s - server \
    --cluster-init \
    --token $MY_TOKEN \
    --node-ip $MY_NODE_IP \
    --advertise-address $MY_NODE_IP \
    --flannel-iface $MY_ETH_DEV \
    --disable-cloud-controller

防火墙需放行 TCP/6443UDP/8472TCP/10250 单网卡、单IP 的机器可以忽略如下参数

  • --node-ip
  • --flannel-iface

可根据集群需求,选择性禁用如下内置组件

  • --disable-cloud-controller 禁用云控制器管理器
  • --disable coredns 禁用内部DNS(用于支持服务发现)
  • --disable servicelb 禁用负载均衡(可使用 MetalLB 替代)
  • --disable traefik 禁用反向代理(可使用 ingress-nginx 替代)
  • --disable local-storage 禁用本地存储卷(不影响 hostPath 卷)
  • --disable metrics-server 禁用内部监控(工作端口为 TCP/10250

4、安装k3s主节点/二(仅平行主节点执行,单主部署可忽略)

代码语言:javascript
复制
wget -qO- https://get.k3s.io | sh -s - server \
    --server https://$MY_SERVER_IP:6443 \
    --token $MY_TOKEN \
    --node-ip $MY_NODE_IP \
    --advertise-address $MY_NODE_IP \
    --flannel-iface $MY_ETH_DEV \
    --disable-cloud-controller

为简化部署,配置参数请和第一主节点保持一致 主节点总数建议为奇数个,防止主节点故障时选举失败

5、部署k3s工作节点(仅工作节点执行,推荐部署3个以上)

代码语言:javascript
复制
wget -qO- https://get.k3s.io | sh -s - agent \
    --server https://$MY_SERVER_IP:6443 \
    --token $MY_TOKEN \
    --node-ip $MY_NODE_IP \
    --flannel-iface $MY_ETH_DEV

防火墙需放行 UDP/8472TCP/10250 单网卡、单IP 的机器可以忽略如下参数

  • --node-ip
  • --flannel-iface

6、附录一:常用查看类命令

代码语言:javascript
复制
# 查看所有节点
kubectl get node
# 查看所有应用
kubectl get pod -A -o wide
# 查看所有服务
kubectl get service -A
kubectl get ingress -A
# 查看节点运行的容器
crictl ps

7、附录二:完全卸载(请注意备份数据)

代码语言:javascript
复制
# 卸载服务器
if type k3s-uninstall.sh >/dev/null; then
    k3s-uninstall.sh
fi
# 卸载边缘节点
if type k3s-agent-uninstall.sh >/dev/null; then
    k3s-agent-uninstall.sh
fi
# 重启后清理
rm -rf ~/.kube
rm -rf /etc/rancher
rm -rf /var/lib/cni
rm -rf /var/lib/rancher
rm -rf /var/lib/kubelet
rm -rf /var/log/containers
rm -rf /var/log/k3s*
rm -rf /var/log/pods

8、附录三:无法下载k3s的解决办法

其他章节

根据本站Tag查阅 《Kubernetes 领进门》 系列文章

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年03月04日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、启用cgroup支持(仅Alpine系统执行)
  • 2、预设临时环境变量(所有节点均需设置)
  • 3、安装k3s主节点/一(仅第一主节点执行)
  • 4、安装k3s主节点/二(仅平行主节点执行,单主部署可忽略)
  • 5、部署k3s工作节点(仅工作节点执行,推荐部署3个以上)
  • 6、附录一:常用查看类命令
  • 7、附录二:完全卸载(请注意备份数据)
  • 8、附录三:无法下载k3s的解决办法
  • 其他章节
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档