k3s快速搭建k8s集群环境

别裁伪体亲风雅,转益多师是汝师。这篇文章主要讲述k3s快速搭建k8s集群环境相关的知识,希望能为你提供帮助。

k8s 搭建方式有多种,如果你是内网环境,希望占用服务器资源少或是边缘系统(如ARM系统),强烈推荐您使用 k3s进行安装



目录
  • k3s 简介
  • k3s架构
  • 中文官方文档
  • 三台服务器快速搭建k8s集群
  • 安装说明
  • 步骤1 修改主机名,保持唯一
  • 步骤2 安装docker
  • 步骤3 安装master节点
  • 步骤4 安装worker节点加入集群
  • 步骤5 查看集群
  • 步骤6 部署 k8s仪表盘 dashboard



k3s 简介
  • 轻量级 Kubernetes。安装简单,内存只有一半,所有的二进制都不到 100MB
  • K3s 是一个完全符合 Kubernetes 的发行版,有以下增强功能。
k3s架构基本就是k8s的架构 k3s Server节点对应k8sMaster节点, Agent节点对应Worker节点
k3s快速搭建k8s集群环境

文章图片

中文官方文档??https://docs.rancher.cn/docs/k3s/_index/??
三台服务器快速搭建k8s集群服务器环境:
  • 3台 阿里云 ECS云主机
  • ECS在同一个区域同一个内网下
  • 操作系统 Linux Centos8
  • 硬件配置 2核8G
  • 采用docker作为k3s的容器
安装说明
  1. 本次集群没有对master节点做高可用,主要是快速体验k8s集群环境
  2. 本次采用docker作为k3s的容器
k3s默认使用container,两者命令对比表:
id
containerd 命令
docker 命令
备注
1
ctr image ls
docker images
获取image信息
2
ctr image pull nginx
docker pull nginx
pull 一个nginx的image
3
ctr image tag nginx nginx-test
docker tag nginx nginx-test
tag 一个nginx的image
4
ctr image push nginx-test
docker push nginx-test
push nginx-test的image
5
ctr image pull nginx
docker pull nginx
pull 一个nginx的image
6
ctr image import nginx.tar
docker load< nginx.tar.gz
导入本地镜像ctr不支持压缩
7
ctr run -d --env 111 nginx-test nginx
docker run -d --name=nginx nginx-test
运行的一个容器
8
ctr task ls
docker ps
查看运行的容器
  1. docker、containerd的关系
从k8s的角度看,可以选择 containerd 或 docker 作为运行时组件:Containerd 调用链更短,组件更少,更稳定,占用节点资源更少
链接:??javascript:void(0)??
  1. 需要开发的端口
K3s Server节点的入站规则:
协议
端口

描述
TCP
6443
K3s agent 节点
Kubernetes API Server
UDP
8472
K3s server 和 agent 节点
仅对 Flannel VXLAN 需要
TCP
10250
K3s server 和 agent 节点
Kubelet metrics
通常情况下,所有出站流量都是允许的。
步骤1 修改主机名,保持唯一
内网地址
主机名称
172.20.167.19
k8s-master
172.20.167.20
k8s-node1
172.20.167.21
k8s-node2
在每一台ECS 下添加hosts信息:

cat > > /etc/hosts < < EOF
172.20.167.19 k8s-master
172.20.167.20 k8s-node1
172.20.167.21 k8s-node2
EOF


步骤2 安装docker
如果需要内网离线安装,可采用二进制方式安装:
??javascript:void(0)??
如果可联网,可以采用官网提供方式安装:
??javascript:void(0)??
步骤3 安装master节点


curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server --docker



cat /var/lib/rancher/k3s/server/node-token


步骤4 安装worker节点加入集群
在 master节点主机上查看 /var/lib/rancher/k3s/server/node-token的值即为 K3S_TOKEN 的值
https://k8s-master:6443 连接master主机

curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://k8s-master:6443 K3S_TOKEN=xxxxxx INSTALL_K3S_EXEC="--docker"sh -



步骤5 查看集群
在master上通过命令 kubectl get node查看集群节点

[root@k8s-master ~]# kubectl get node
NAMESTATUSROLESAGEVERSION
k8s-masterReadycontrol-plane,master14hv1.20.0+k3s2
k8s-node2Ready< none> 13hv1.20.0+k3s2
k8s-node1Ready< none> 13hv1.20.0+k3s2
[root@k8s-master ~]#



步骤6 部署 k8s仪表盘 dashboard
下面的文章可以部署成功,简单方便:
??https://www.jianshu.com/p/026fd0165535??
如果按照k3s官网的介绍的方式,则需要做如下工作:
raw.githubusercontent.com 无法访问,需在 hosts文件中添加ip映射:
199.232.96.133 raw.githubusercontent.com

【k3s快速搭建k8s集群环境】

    推荐阅读