K3s安装部署
K3s简介(一)
k3s 是一个轻量级 Kubernetes,它易于安装,二进制文件包小于 40 mb,只需要 512MB RAM 即可运行。
非常适用于:
- Edge
- IoT
- CI
- ARM
k3s 旨在成为完全兼容的 Kubernetes 发行版,相比 k8s 主要更改如下:
- 旧的、Alpha 版本的、非默认功能都已经删除。
- 删除了大多数内部云提供商和存储插件,可以用插件替换。
- 新增 SQLite3 作为默认存储机制,etcd3 仍然有效,但是不再是默认项。
- 封装在简单的启动器中,可以处理大量 LTS 复杂性和选项。
- 最小化到没有操作系统依赖,只需要一个内核和 cgroup 挂载。
k3s 包需要依赖:
- containerd
- Flannel
- CoreDNS
- CNI
- Host 工具(iptables、socat 等)
k3s 工作原理:
k3s完整版本离线部署
3台Centos7.6虚拟机,三台虚拟机主机名必须***不同!!
主机名 | ip地址 |
---|---|
master | 192.168.50.142 |
node1 | 192.168.50.133 |
node2 | 192.168.50.212 |
1 系统优化
所有机器执行
#!bin/bash
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#http://mirrors.163.com/.help/CentOS7-Base-163.repo
yum install net-tools vim tree htop iftop iotop lrzsz sl wget unzip telnet nmap nc psmisc dos2unix bash-completion sysstat bind-utils epel-release -y
yum install -y yum-utils
yum-config-manager --add-repo="file:///mnt"
yum-config-manager -y
sed -ri 's#(^SELINUX=).*#\1disabled#g' /etc/selinux/config
echo '* - nofile 65535' >> /etc/security/limits.conf
sed -i 's@#UseDNS yes@UseDNS no@g' /etc/ssh/sshd_config
sed -i 's@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config
systemctl stop firewalld && systemctl disable firewalld
systemctl stop NetworkManager && systemctl disable NetworkManager
systemctl start network && systemctl enable network
systemctl get-default
systemctl set-default multi-user.target
systemctl stop crond && systemctl disable crond
systemctl restart sshd
cd /etc/yum.repos.d/
rm -rf mnt.repo
yum install rsync -y
##执行完成最好重启服务器
更改主机名
[root@centos ~]# hostnamectl set-hostname k3s-master
[root@centos ~]# hostnamectl set-hostname k3s-node1
[root@centos ~]# hostnamectl set-hostname k3s-node2
2 安装docker引擎
[root@k3s-master ~]# yum install docker* -y
#启动docker
[root@k3s-master ~]# systemctl restart docker
[root@k3s-master ~]# systemctl enable docker
3 下载k3s资源包
3.安装master节点
将下载的资源包上传至 /var/lib/rancher/k3s/agent/images/中
下载k3s运行的依赖包
[root@k3s-master ~]# wget https://github.com/rancher/k3s/releases/download/v0.10.2/k3s-airgap-images-amd64.tar
下载k3s二进制文件
[root@k3s-master ~]# wget https://github.com/rancher/k3s/releases/download/v0.10.2/k3s
下载安装脚本
[root@k3s-master ~]# wget https://github.com/rancher/k3s/blob/master/install.sh
赋予权限
[root@k3s-master ~]# chmod 755 k3s
[root@k3s-master ~]# chmod 755 insatll.sh
[root@k3s-master ~]# chmod 755 k3s-airgap-images-amd64.tar
修改install.sh文件,添加或设置如下
[root@k3s-master ~]# export INSTALL_K3S_SKIP_DOWNLOAD=true //设置跳过下载k3s二进制文件
创建链接
[root@k3s-master ~]# cp k3s /usr/local/bin/k3s
将所需镜像文件拷贝
[root@k3s-master ~]# mkdir -p /var/lib/rancher/k3s/agent/images/
[root@k3s-master ~]# cp k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/
docker导入镜像
[root@k3s-master ~]# docker load -i k3s-airgap-images-amd64.tar
注:如搭好k3s后,没有docker load -i操作,之后修改k3s.service,添加–docker --no-deploy traefik后,创建demo失败
启动安装文件
[root@k3s-master ~]# ./install.sh
#也可以INSTALL_K3S_EXEC="–no-deploy=traefik" ./install.sh 操作
启动k3s
[root@k3s-master ~]# systemctl daemon-reload
[root@k3s-master ~]# systemctl restart k3s
查看状态
node节点加入
下载k3s二进制文件
[root@k3s-node1 ~]# wget https://github.com/rancher/k3s/releases/download/v0.10.2/k3s
下载安装脚本
[root@k3s-node1 ~]# wget https://github.com/rancher/k3s/blob/master/install.sh
赋予权限
[root@k3s-node1 ~]# chmod 755 k3s
[root@k3s-node1 ~]# chmod 755 insatll.sh
修改install.sh文件,添加或设置如下
[root@k3s-node1 ~]# export INSTALL_K3S_SKIP_DOWNLOAD=true //设置跳过下载k3s二进制文件
创建链接
[root@k3s-node1 ~]# cp k3s /usr/local/bin/k3s
K3S_TOKEN是server端的,位于/var/lib/rancher/k3s/server/node-token下 //token是动态的!!
## 获取token
[root@k3s-master ~]# cat /var/lib/rancher/k3s/server/node-token
K10107382aac1d56c3f5754f7daafa1d8c7769ae8c48941771c7b5c551e4b2093ac::node:97e3e5fa24588e6673577cdae1eaff8d
## 设置token
[root@k3s-node1 ~]# export INSTALL_K3S_SKIP_DOWNLOAD=true
[root@k3s-node1 ~]# export K3S_TOKEN=K10107382aac1d56c3f5754f7daafa1d8c7769ae8c48941771c7b5c551e4b2093ac::node:97e3e5fa24588e6673577cdae1eaff8d
## 设置server
[root@k3s-node1 ~]# export K3S_URL=https://192.168.50.142:6443
## 添加工作节点
[root@k3s-node1 ~]# ./install.sh
登录master检查
清理docker
## 清理未使用镜像
docker image prune -a -f
## 清理未使用容器
docker container prune -f
## 查看容器占用
docker stats --no-stream