记录一次k3s集群安装过程。
首先安装k3s集群可参考官网,K3s。官网上写使用如下命令进行安装:
curl -sfL https://get.k3s.io | sh -
# Check for Ready node, takes ~30 seconds
sudo k3s kubectl get node
除了使用官网脚本安装,还是想记录下使用rancher安装k3s的具体安装过程。
我是在虚拟机上安装的k3s集群,建了两个,一个是k3s server,一个是k3s agent,配置均为1G内存和2处理器,系统均使用Centos7,虚拟机使用的桥接模式,具体如下:
序号 | 虚拟机命名 | 系统 | 网络 | 内存 | 处理器 |
---|---|---|---|---|---|
1 | k3s-server | Centos7 | 192.168.17.225 | 1024M | 2 |
2 | k3s-agent | Centos7 | 192.168.17.226 | 1024M | 2 |
k3s-server的网络配置文件 /etc/sysconfig/network-scripts/ifcfg-enp0s3 如下:
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s3"
UUID="390a6b9c-3f60-4df8-bf05-a08dd835c5ba"
DEVICE="enp0s3"
ONBOOT="yes"
IPV6_PRIVACY="no"
IPADDR="192.168.17.225"
PREFIX="24"
GATEWAY="192.168.17.254"
DNS1="222.172.200.68"
DNS2="61.166.150.123"
k3s-agent的网络配置文件 /etc/sysconfig/network-scripts/ifcfg-enp0s3 如下:
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s3"
UUID="6db3a8ba-3841-4074-9596-6dd66a62346d"
DEVICE="enp0s3"
ONBOOT="yes"
IPADDR="192.168.17.226"
PREFIX="24"
GATEWAY="192.168.17.254"
DNS1="222.172.200.68"
DNS2="61.166.150.123"
IPV6_PRIVACY="no"
下面开始安装。
一、k3s-server上的操作
1、修改yum源并安装所需软件
运行如下命令配置K8S的源:
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
EOF
运行如下命令添加Docker源:
yum install yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新源命令如下:
yum update
安装所需软件命令如下:
yum -y install wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack ntpdate yum-utils device-mapper-persistent-data lvm2 telnet
2、配置虚拟机k3s安装环境
关闭防火墙命令如下:
systemctl stop firewalld && systemctl disable firewalld
systemctl stop iptables && systemctl disable iptables
同步时间命令如下:
ntpdate cn.pool.ntp.org
关闭Swap交换分区命令如下:
swapoff -a
关闭selinux命令如下:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
之后重启虚拟机,然后使用 getenforce 命令查看selinux有没有关闭了。
修改内核参数命令如下:
cat <<EOF >/etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
之后运行如下命令加载所有的sysctl配置:
sysctl --system
输入 vim /etc/hosts 配置hosts文件:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.17.225 k3s-server
192.168.17.226 k3s-agent
配置server、agent之间免密码登陆如下:
ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa k3s-agent
3、正式导入安装k3s
如果你是使用XShell工具,使用 rz -E 命令或直接拖拽的形式上传 k3s-server.tar.gz 文件。文件已上传奶牛快传 https://cowtransfer.com/s/ae79b17bbf3b4f 。
使用如下命令安装containerd:
yum install containerd
使用如下命令启动containerd:
systemctl start containerd
使用如下命令导入解压压缩包:
ctr images import k3s-server.tar.gz
使用脚本安装k3s:
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
安装好后可执行以下命令查看验证:
kubectl get nodes
kubectl get pods -n kube-system
此时来到k3s-agent上操作。
二、k3s-agent上的操作
k3s-agent上前面的操作和k3s-server一样。
1、修改yum源并安装所需软件
运行如下命令配置K8S的源:
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
EOF
运行如下命令添加Docker源:
yum install yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新源命令如下:
yum update
安装所需软件命令如下:
yum -y install wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack ntpdate yum-utils device-mapper-persistent-data lvm2 telnet
2、配置虚拟机k3s安装环境
关闭防火墙命令如下:
systemctl stop firewalld && systemctl disable firewalld
systemctl stop iptables && systemctl disable iptables
同步时间命令如下:
ntpdate cn.pool.ntp.org
关闭Swap交换分区命令如下:
swapoff -a
关闭selinux命令如下:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
之后重启虚拟机,然后使用 getenforce 命令查看selinux有没有关闭了。
修改内核参数命令如下:
cat <<EOF >/etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
之后运行如下命令加载所有的sysctl配置:
sysctl --system
输入 vim /etc/hosts 配置hosts文件:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.17.225 k3s-server
192.168.17.226 k3s-agent
配置server、agent之间免密码登陆如下:
ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa k3s-server
3、正式导入安装k3s
同样如果你是使用XShell工具,使用 rz -E 命令或直接拖拽的形式上传 k3s-agent.tar.gz 文件。文件已上传奶牛快传 https://cowtransfer.com/s/ae79b17bbf3b4f 。
使用如下命令安装containerd:
yum install containerd
使用如下命令启动containerd:
systemctl start containerd
使用如下命令导入解压压缩包:
ctr images import k3s-agent.tar.gz
此时来到k3s-server这台虚拟机上,执行以下命令查看node-token:
cat /var/lib/rancher/k3s/server/node-token
假设node-token值为K10143264a7ecdd9004e1b181f4f36cada54a99e3db8f5195bda423b3ef4ab456df::server:d16242a7abdf50dcf80919f3f3e057ck
再来到k3s-agent这台虚拟机上执行以下命令:
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://192.168.17.225:6443 K3S_TOKEN=K10143264a7ecdd9004e1b181f4f36cada54a99e3db8f5195bda423b3ef4ab456df::server:d16242a7abdf50dcf80919f3f3e057ck sh -
此时回到k3s-server这台虚拟机上执行以下命令验证k3s-agent是否加入:
kubectl get nodes
验证成功后至此安装完成。