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


目录



k3s 简介

  • 轻量级 Kubernetes。安装简单,内存只有一半,所有的二进制都不到 100MB
  • K3s 是一个完全符合 Kubernetes 的发行版,有以下增强功能。

k3s架构

基本就是k8s的架构 k3s Server节点对应k8sMaster节点, Agent节点对应Worker节点

k3s快速搭建k8s集群环境_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
NAME STATUS ROLES AGE VERSION
k8s-master Ready control-plane,master 14h v1.20.0+k3s2
k8s-node2 Ready <none> 13h v1.20.0+k3s2
k8s-node1 Ready <none> 13h v1.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