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