K8S 的轻量版 K3S 安装教程

@eyasliu 2019-08-21 07:54:44发表于 eyasliu/blog 服务器

K3S 官网 :https://k3s.io/

K8S 和 K3S 是什么关系呢,官网原话

k3s 旨在成为完全兼容的 Kubernetes 发行版,相比 k8s 主要更改如下:

  1. 旧的、Alpha 版本的、非默认功能都已经删除。
  2. 删除了大多数内部云提供商和存储插件,可以用插件替换。
  3. 新增 SQLite3 作为默认存储机制,etcd3 仍然有效,但是不再是默认项。
  4. 封装在简单的启动器中,可以处理大量 LTS 复杂性和选项。
  5. 最小化到没有操作系统依赖,只需要一个内核和 cgroup 挂载。

所以完全可以把 K3S 代替K8S,而且占用的资源还会更小,功能也不会有缺失,还更简单。
K3S 是 K8S 的轻量级版,但并不是阉割版,K8S的功能它都有,也兼容K8S的各种插件和应用。

进到官网,可以看到有条命令可以一键安装

curl -sfL https://get.k3s.io | sh -

如果服务器是在国外,应该是不存在网络问题,用这一条命令就能装成功的。如果服务器在中国大陆,会遇到一系列网络问题,在此记录国内服务器安装 K3S 的流程

准备工作

安装指定版本的 docker

这里要注意下,k8S对docker版本是有要求的,不能太高,写本篇文章的时候,K8S的最新版是 v1.14.6,K3S的最新版是 v0.8.1,此时K3S的最新版也是兼容的最新版K8S,这时候的K8S的docker版本最高支持到 18.06,当前docker最新版是 19.03,所以,安装docker的时候要小心版本号。

以 ubuntu 为例

# step 1: 安装GPG证书
$ curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# Step 2: 写入软件源信息
$ sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

# Step 3: 更新源
$ sudo apt-get -y update

# Step 4: 查看当前可安装的docker版本
# centos 使用 yum list docker-ce --showduplicates
$ apt-cache policy docker-ce
docker-ce:
  Installed: 18.06.3~ce~3-0~ubuntu
  Candidate: 5:19.03.1~3-0~ubuntu-bionic
  Version table:
     5:19.03.1~3-0~ubuntu-bionic 500
        500 https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic/stable amd64 Packages
     5:19.03.0~3-0~ubuntu-bionic 500
        500 https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic/stable amd64 Packages
     5:18.09.8~3-0~ubuntu-bionic 500
        500 https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic/stable amd64 Packages
     5:18.09.7~3-0~ubuntu-bionic 500
        500 https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic/stable amd64 Packages
     5:18.09.6~3-0~ubuntu-bionic 500
        500 https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic/stable amd64 Packages
     5:18.09.5~3-0~ubuntu-bionic 500
        500 https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic/stable amd64 Packages
     5:18.09.4~3-0~ubuntu-bionic 500
        500 https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic/stable amd64 Packages
     5:18.09.3~3-0~ubuntu-bionic 500
        500 https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic/stable amd64 Packages
     5:18.09.2~3-0~ubuntu-bionic 500
        500 https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic/stable amd64 Packages
     5:18.09.1~3-0~ubuntu-bionic 500
        500 https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic/stable amd64 Packages
     5:18.09.0~3-0~ubuntu-bionic 500
        500 https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic/stable amd64 Packages
 *** 18.06.3~ce~3-0~ubuntu 500
        500 https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic/stable amd64 Packages
        100 /var/lib/dpkg/status
     18.06.2~ce~3-0~ubuntu 500
        500 https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic/stable amd64 Packages
     18.06.1~ce~3-0~ubuntu 500
        500 https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic/stable amd64 Packages
     18.06.0~ce~3-0~ubuntu 500
        500 https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic/stable amd64 Packages
     18.03.1~ce~3-0~ubuntu 500
        500 https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic/stable amd64 Packages

# Step 5: 安装指定版本
# centos 使用 sudo yum install docker-ce-18.06.3.ce-3.el7
$ sudo apt install -y docker-ce=18.06.3~ce~3-0~ubuntu

# Step 6: 验证安装
$ sudo docker version

# Step 7: 把当前用户加到docker用户组,以后该用户执行dokcer命令可以不再需要sudo,需要重新登录才会生效
$ sudo usermod -aG docker $USER

下载可执行文件

先本地下载 k3s 的二进制文件,注意url的版本号

https://github.com/rancher/k3s/releases/download/v0.8.1/k3s

下载完成后想办法上传到服务器,这里提供scp方式示例

scp -P 23 ./k3s [email protected]:/home/user/

然后连接上服务器,将k3s文件放到 /usr/local/bin,并加上可执行权限

sudo mv ./k3s /usr/local/bin/
sudo chmod +x /usr/local/bin/k3s

这样在后面安装k3s的时候就不会再去下载k3s文件

下载基础镜像

安装的时候会下载一些在k8s.gcr.io的镜像,被墙了,事先装好,注意镜像版本号是不是当前时间的最新版

docker pull mirrorgooglecontainers/pause:3.1
docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1

开始安装 K3S

安装

curl -sfL https://get.k3s.io | sh -

因为在准备工作的时候下载好了大部分该下载的,所以这个过程应该很快,装完后验证一下

$ sudo kubectl get nodes
NAME             STATUS   ROLES    AGE     VERSION
vm-0-16-ubuntu   Ready    master   3h26m   v1.14.6-k3s.1

修改配置

做如下修改

  • 把默认容器引擎从 Containerd 切换到 Docker,
  • 修改配置文件权限,可以使得执行 kubectl 命令不需要root权限
sudo vim /etc/systemd/system/multi-user.target.wants/k3s.service

需要修改ExecStart的值,将其修改为:

/usr/local/bin/k3s server --docker --no-deploy traefik --write-kubeconfig-mode 664

重启服务

sudo systemctl daemon-reload
sudo systemctl restart k3s 

# 然后查看节点是否启动正常
sudo k3s kubectl get node

到此完成 K3S 的部署

K8S 集群

既然 K3S 是 K8S 的轻量级版,那集群也是有的。

所有机器安装 K3S

按照本文章上面的流程,在所有机器都安装一遍K3S,暂时把所有机器都当做master节点对待,全都独自安装一遍,确保安装好之后使用下面命令能找到自身节点

sudo k3s kubectl get node

配置 master 节点

现在所有机器都准备好了,任意选择一台作为master节点。如果你的所有机器都在同一个网段,比如都是在同一个局域网,则master节点不需要做任何修改就可以直接用,跳过本步骤。如果各个机器是跨网段,跨云商(比如一台机器是阿里云,一台机器是腾讯云,还有一台是亚马逊云),但是需要确保所有机器都有公网IP,则在master节点修改 K3S 配置,把 K3S 的地址绑定为公网IP

sudo vim /etc/systemd/system/multi-user.target.wants/k3s.service

修改 ExecStart 的字段值为 ,注意其中的ip 12.34.56.78 修改为你的 master 节点的公网ip

/usr/local/bin/k3s server --docker --no-deploy traefik --write-kubeconfig-mode 664 --kube-apiserver-arg="advertise-address=12.34.56.78" --kube-apiserver-arg="external-hostname=12.34.56.78"

然后重启服务

sudo systemctl daemon-reload
sudo systemctl restart k3s 

配置 slave 节点

目前master节点配置好了,现在配置 slave 节点。在 K3S 官网最下面其实有讲怎么加入,流程如下

在 maser 节点执行如下命令,注意把ip换成你自己的

$ echo /usr/local/bin/k3s agent --server https://12.34.56.78:6443 --token `sudo cat /var/lib/rancher/k3s/server/node-token`
sudo k3s agent --server https://12.34.56.78:6443 --token K1022c3b20bd00e2b705ca34551b5e346dcce703dsr132dddfc3f8323b0adb1fb9::node:adb40646cf6fdc1239e3d769b9dbbb9a

复制好上面命令输出的内容,到所有的 slave 节点编辑配置

sudo vim /etc/systemd/system/multi-user.target.wants/k3s.service

把配置文件中 ExecStart 值修改为上面输出的内容,修改保存后重启 K3S

sudo systemctl daemon-reload
sudo systemctl restart k3s 

验证一下,到maser节点,执行命令查看当前的可用节点,就能看到其他节点已加入进来

$ kubectl get node
NAME                      STATUS   ROLES    AGE   VERSION
iz2ze4grlnalbfkizskkadf   Ready    master   25h   v1.14.6-k3s.1
vm-0-16-ubuntu            Ready    worker   18h   v1.14.6-k3s.1
发布了0 篇原创文章 · 获赞 0 · 访问量 534

猜你喜欢

转载自blog.csdn.net/qingdao666666/article/details/104712338