Kubernetes(简称 K8s)是一个开源的容器编排平台。它用于管理容器化应用的自动部署、扩展和操作。Kubernetes 能帮助开发者和运维人员简化应用的管理,保证应用高可用、易扩展和稳定运行。
通俗来说,可以把 Kubernetes 想象成一个工厂的自动化生产线:
K3s 是一种轻量级的 Kubernetes 发行版,由 Rancher Labs 开发。它针对资源有限的环境进行了优化,比如物联网设备、边缘计算设备、小型服务器等。
通俗来说,可以把 K3s 想象成一个简化版的 Kubernetes:
安装和配置:
资源消耗:
功能:
应用场景:
总之,Kubernetes 是一个功能强大的容器编排工具,而 K3s 则是其简化和优化的版本,适用于特定的资源受限场景。
1.准备两台CentOS7主机


一台为172.21.12.176
,一台为172.21.12.135
2.准备安装环境
2.1安装系统环境:操作系统初始化配置(所有节点)
# 2).关闭防火墙 sudo systemctl stop firewalld sudo systemctl disable firewalld # 3).关闭SeLinux sudo setenforce 0 sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config # 4)设置主机名 hostnamectl set-hostname # 5)修改hosts文件 cat >> /etc/hosts << EOF 172.21.12.176 k3s-node1 172.21.12.135 k3s-node2 EOF # 6)修改resolv.conf,解决域名解析失败的问题 cat >> /etc/resolv.conf << EOF nameserver 8.8.8.8 nameserver 114.114.114.114 EOF # 7).配置yum源 yum install -y yum-utils yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 8)同步时间 yum install ntpdate -y ntpdate time.windows.com 注意:
1)如果安装yum源时报错:
已加载插件:fastestmirror,langpacksLoading mirror speeds from cached hostfileCould not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was14:curl#6 -“Could not resolve host: mirrorlist.centos.org;未知的错误”
原因:yum镜像源的问题,更换镜像源即可,如若这步不成功,则卸载yum重装即可。
如果还是不行则是镜像源的问题,修改yum的镜像源地址:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup cd /etc/yum.repos.d rm -f *.repo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache 如下图成功。
如果运行卸载yum install -y yum-utils指令不成功则重新安装。
rpm -qa|grep yum rpm -aq|grep yum|xargs rpm -e --nodeps wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/python-2.7.5-89.el7.x86_64.rpm wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm 
如果找不到以上版本,可以到 https://mirrors.aliyun.com/centos/7/os/x86_64/Packages下载最新版本

下载完成之后安装
rpm -ivh python-2.7.5-89.el7.x86_64.rpm python-iniparse-0.4-9.el7.noarch.rpm --nodeps --force rpm -ivh yum-metadata-parser-1.1.4-10.el7.x86_64.rpm --nodeps --force rpm -ivh yum-3.4.3-168.el7.centos.noarch.rpm yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm --nodeps --force 
完成,重新使用yum命令即可。
2.安装docker
1)安装必要的依赖项
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 2)添加Docker稳定版仓库
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 3)安装Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io 4)启动Docker服务
sudo systemctl start docker 5)设置Docker开机启动
sudo systemctl enable docker Docker配置国内阿里镜像源,第一个https://jp8hrgkf.mirror.aliyuncs.com是我阿里账号下的个人镜像,可以自行百度怎么替换成自己的。
vi /etc/docker/daemon.json { "registry-mirrors": [ "https://jp8hrgkf.mirror.aliyuncs.com", "https://dockerhub.azk8s.cn", "https://reg-mirror.qiniu.com" ], "insecure-registries": [], "exec-opts": ["native.cgroupdriver=systemd"] } 重启docker
systemctl daemon-reload && systemctl restart docker; 安装容器(所有节点)
安装 Containerd
yum install containerd -y systemctl start containerd && systemctl enable containerd 部署 K3S Server
部署
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh - 
执行kubectl get nodes
kubectl get nodes # 相关命令 systemctl status k3s # 查看服务状态 systemctl stop k3s # 停止服务 systemctl start k3s # 启动服务 systemctl restart k3s # 重新启动服务 k3s-uninstall.sh # 卸载服务 如果执行kubectl get nodes报错
cat <> /root/.bashrc export KUBECONFIG=/etc/rancher/k3s/k3s.yaml EOF source /root/.bashrc # 如果还不行 mkdir .kube/config cp /etc/rancher/k3s/k3s.yaml $HOME/.kube/config 修改ip为主机的ip:172.21.12.176
vim etc/rancher/k3s/k3s.yaml 
配置环境变量
vim /etc/profile # k3s export KUBECONFIG=/etc/rancher/k3s/k3s.yaml export K3S_NETWORK_INTERFACE=enp0s3 
watch kubectl get node -o wide 
检查是否正常安装
k3s check-config 调整启动参数
vim /etc/default/grub 添加 user_namespace.enable=1 参数
原始值
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet" 修改后
GRUB_CMDLINE_LINUX="user_namespace.enable=1 crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet" 
cat /var/lib/rancher/k3s/server/node-token K10e2075a391292492ce3b260dc5d5e8e6a4ac3f8aa2cc2bb8b2b85eea3cc78c356::server:d65b7835c0af6bfac2cbd585b8d20ff7 
查看k3s版本

kubectl cluster-info 
获取服务地址,用于后续工作节点连接使用。
在172.21.12.135机器上执行加入节点
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_EXEC="--docker" INSTALL_K3S_VERSION=v1.29.6+k3s2 K3S_URL=https://172.21.12.176:6443 K3S_TOKEN=K10e2075a391292492ce3b260dc5d5e8e6a4ac3f8aa2cc2bb8b2b85eea3cc78c356::server:d65b7835c0af6bfac2cbd585b8d20ff7 sh - 
# 相关命令 systemctl status k3s # 查看服务状态 systemctl stop k3s # 停止服务 systemctl start k3s # 启动服务 systemctl restart k3s # 重新启动服务 k3s-agent-uninstall.sh # agent 节点卸载 出现错误
[INFO] systemd: Starting k3s-agent Job for k3s-agent.service failed because the control process exited with error code. See "systemctl status k3s-agent.service" and "journalctl -xe" for details. # 配置kubectl配置文件 # node节点 mkdir ~/.kube scp root@172.21.12.176:/etc/rancher/k3s/k3s.yaml ~/.kube/config sed -i s'/127.0.0.1/172.21.12.176/' ~/.kube/config 

vi /etc/rancher/k3s/k3s.yaml 再次在客户端节点执行kubectl get nodes出现错误
couldn't get current server API group list: Get "https://172.21.12.176:6443/api?timeout=32s": tls: failed to verify certificate: x509: certificate signed by unknown authority Unable to connect to the server: tls: failed to verify certificate: x509: certificate signed by unknown authority 
实在不行如果在主机没获得,在k3s的软件安装包下执行

INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC='server --token K10e2075a391292492ce3b260dc5d5e8e6a4ac3f8aa2cc2bb8b2b85eea3cc78c356::server:d65b7835c0af6bfac2cbd585b8d20ff7 --server https://172.21.12.176:6443' K3S_DATASTORE_ENDPOINT='mysql://root:123456@tcp(172.21.12.176:3306)/k3s' ./install.sh 
最后在主节点上查看

在主节点执行
watch kubectl get node -o wide 
在主节点上安装
wget --no-check-certificate https://addons.kuboard.cn/kuboard/kuboard-v3.yaml 1 
kubectl apply -f kuboard-v3.yaml watch kubectl get pods -n kuboard -o wide 
或者运行:
sudo docker run -d \ --restart=unless-stopped \ --name=kuboard \ -p 80:80/tcp \ -p 10081:10081/udp \ -p 10081:10081/tcp \ -e KUBOARD_ENDPOINT="http://172.21.12.176:80" \ -e KUBOARD_AGENT_SERVER_UDP_PORT="10081" \ -e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \ -v /root/kuboard-data:/data \ eipwork/kuboard:v3.3.0.3 在浏览器中打开链接 “http://172.21.12.176:80”
输入初始用户名和密码,并登录
用户名: admin
密码: Kuboard123
http://172.21.12.176/sso/auth/default?req=okvbp7tprgylrqqn2gorm4hdp
kuboard官网
https://kuboard.cn/install/v3-upgrade.html#%E5%A6%82%E6%9E%9C%E4%BB%A5-docker-run-%E8%BF%90%E8%A1%8C-kuboard
安装教程:https://kuboard.cn/learning/