k3s是rancher开源的一个Kubernetes发行版,从名字上就可以看出k3s相对k8s做了很多裁剪和优化,二进制程序不足50MB,占用资源更少,只需要512MB内存即可运行

部署架构图

高可用最小模式的部署方式

192.168.0.1、192.168.0.2、192.168.0.3 搭建K3S精简集群,部署应用集群。

运维人员可以通过192.168.0.1管理维护K3S集群。

192.168.111.1、192.168.111.2 搭建数据库高可用、redis缓存高可用、对象存储等中间件服务。

TODO 明确相关服务器硬件配置

安装k3s

#下载离线安装包
wget https://rancher-mirror.rancher.cn/k3s/k3s-install.sh
wget https://rancher-mirror.rancher.cn/k3s/v1.30.2-k3s2/k3s-images.txt
wget https://rancher-mirror.rancher.cn/k3s/v1.30.2-k3s2/k3s
wget https://rancher-mirror.rancher.cn/k3s/v1.30.2-k3s2/k3s-airgap-images-amd64.tar.gz


#权限设置
sudo chmod a+x ./k3s ./k3s-install.sh
sudo cp ./k3s /usr/local/bin/


#设置环境变量:
export INSTALL_K3S_EXEC="--docker --disable=traefik --kube-apiserver-arg service-node-port-range=0-65535 --write-kubeconfig ~/.kube/config --write-kubeconfig-mode 666"


#执行安装server命令:
INSTALL_K3S_SKIP_DOWNLOAD=true ./k3s-install.sh

将安装其他实用程序,包括kubectlcrictlctrk3s-killall.shk3s-uninstall.sh

将kubeconfig文件写入到/etc/rancher/k3s/k3s.yaml,由 K3s 安装的 kubectl 将自动使用该文件

在其他节点安装K3s的woker node,并加入到集群中

设置K3S_URL参数会使 K3s 以 worker 模式运行。K3s agent 将在所提供的 URL 上向监听的 K3s 服务器注册。K3S_TOKEN使用的值存储在你的服务器节点上的/var/lib/rancher/k3s/server/node-token路径下。

注意:每台计算机必须具有唯一的主机名。如果您的计算机没有唯一的主机名,请传递K3S_NODE_NAME环境变量,并为每个节点提供一个有效且唯一的主机名。

#执行安装agent命令:
INSTALL_K3S_SKIP_DOWNLOAD=true K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetoken ./k3s-install.sh

查看状态

systemctl status k3s

卸载k3s

cd /usr/local/bin
k3s-killall.sh
k3s-uninstall.sh

修改k3s相关配置
#vi /etc/systemd/system/k3s.service
vi /etc/systemd/system/multi-user.target.wants/k3s.service




#重新加载配置文件
systemctl daemon-reload


#重启k3s服务
systemctl restart k3s.service


#查看server/master节点token值
cat /var/lib/rancher/k3s/server/node-token


#在master节点查看node节点是否加入成功
kubectl get node -o wide
 
#master节点更改node节点身份为worker
kubectl label node k3s-node1 node-role.kubernetes.io/worker=worker

安装kuboard

docker run 的方式运行 Kuboard,参考:

安装 Kuboard v3 - 内建用户库 | Kuboard

docker run -d \
  --restart=unless-stopped \
  --name=kuboard \
  -p 8081:80/tcp \
  -p 10081:10081/tcp \
  -e KUBOARD_ENDPOINT="http://192.168.152.35:80" \
  -e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
  -v /root/kuboard-data:/data \
  swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3

默认账号:admin

默认密码:Kuboard123

登录成功后,修改默认登录密码。

通过 .kubeconfig方式导入k3s集群。

内容通过如下方式获取:找到master节点下的k3s配置,(路径 /etc/rancher/k3s/k3s.yaml ) 修改内部的server ip为master节点的ip。

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkekNDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdGMyVnkKZG1WeUxXTmhRREUyTmpReU1ESTBNRGd3SGhjTk1qSXdPVEkyTVRReU5qUTRXaGNOTXpJd09USXpNVFF5TmpRNApXakFqTVNFd0h3WURWUVFEREJock0zTXRjMlZ5ZG1WeUxXTmhRREUyTmpReU1ESTBNRGd3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFRdmJOZEdiNDAvWmR4L2JiRjgzZXZObGFsUFVXTm5KMmp6UFZoT0k4VXAKR1QyeXQ1b0FCTEs2a0diWnVEbkowTE9GYnBudXZFMUkyRFl0d2RxMmh3YnFvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVXA1YU5GZlU5U0R3dFVoQlZJVTNUCkc4UTgwa293Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUlxcVhMNFBVa0xsdld3T3hmZ3M2NFNhSHBobFgvaW8KVFJJME9MdnR5VmRXQWlBcFhrcndLRmZBYmFmSDNkZnNjY0dIbGYvdVpMbTJaNG1WeURRZmE4dUtPUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
    server: https://192.168.1.11:6443
  name: default
contexts:
- context:
    cluster: default
    user: default
  name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
  user:
    client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJrVENDQVRlZ0F3SUJBZ0lJQ0NjT1VkbCtEZzR3Q2dZSUtvWkl6ajBFQXdJd0l6RWhNQjhHQTFVRUF3d1kKYXpOekxXTnNhV1Z1ZEMxallVQXhOalkwTWpBeU5EQTRNQjRYRFRJeU1Ea3lOakUwTWpZME9Gb1hEVEl6TURreQpOakUwTWpZME9Gb3dNREVYTUJVR0ExVUVDaE1PYzNsemRHVnRPbTFoYzNSbGNuTXhGVEFUQmdOVkJBTVRESE41CmMzUmxiVHBoWkcxcGJqQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJJQWZuSncrVVVOaUdsN3QKWGhMUFZDTUpyWHIraFUvWVU4SVNoRVNtQktucng0eWZ4NUQ3TnpTdkR5YUdldjk3SVJDUGlKUktvaENFMGlnMwp1Z3I5b1RlalNEQkdNQTRHQTFVZER3RUIvd1FFQXdJRm9EQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RBakFmCkJnTlZIU01FR0RBV2dCU1lxTHlEK2tzMjhidVBSMUx2RTZDN1hGV2U5REFLQmdncWhrak9QUVFEQWdOSUFEQkYKQWlBTW5HekViQUx2K2dUZUxFc1M5T1dyOWNrRXhDMUVHT2FBSDBpemdCb2R4UUloQU1xSDFZeUU5N0ZFeXh0Kwp5aHlMaWYxb3A3alcrcHFIakRNT1VTQzg0SGtsCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkakNDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdFkyeHAKWlc1MExXTmhRREUyTmpReU1ESTBNRGd3SGhjTk1qSXdPVEkyTVRReU5qUTRXaGNOTXpJd09USXpNVFF5TmpRNApXakFqTVNFd0h3WURWUVFEREJock0zTXRZMnhwWlc1MExXTmhRREUyTmpReU1ESTBNRGd3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFSQzlKYUppZUVlSHZBVUU5NzA5d3lRUjBQbTgrWlZteis0enpNS1ZZTGYKVDl6and2NUJUUGJoazlFNXh3c3I0Zkg2Zkw5RnI0QWtsZW1HSEhicWJIQ1VvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVW1LaThnL3BMTnZHN2owZFM3eE9nCnUxeFZudlF3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnZHFhbVpNMUttUzlnT1E2d0k4SWh3UDAvY05XV1ZQeEsKNUF4eU03elRiTElDSUdBOUZWa0hPTDAyN05WaFd4MngydnNtdkNOLzZoa2RGVnhJOFMwM05IUkoKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
    client-key-data: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUd6VldKY1JpUkljLzFWTnc0UGRKckZFbEk2cisyUkdWWDJMQ0tsZldibnRvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFZ0IrY25ENVJRMklhWHUxZUVzOVVJd210ZXY2RlQ5aFR3aEtFUktZRXFldkhqSi9Ia1BzMwpOSzhQSm9aNi8zc2hFSStJbEVxaUVJVFNLRGU2Q3YyaE53PT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=

安装metrics-server 监控计算资源。

安装存储

方案一: k3s 内置local storage provider,不适合高可用场景

方案二:使用外部存储 CIFS

K9s(可选)

快捷管理kubenetes集群的运维软件,k3s同理

下载对应版本的系统即可,以windows平台为例,下载下来,解压,把k9s.exe 加入系统环境变量即可。

  • 登录服务器,下载k8s集群的yaml配置文件
# k3s 
/etc/rancher/k3s/k3s.yaml
# k8s
./kube/config
# 将文件下载到本地路径,创建环境变量配置
%KUBECTL_HOME%		k3s.yaml配置文件路径

下载kubectl指令文件

# 查看 kubectl.exe 最新版本
https://storage.googleapis.com/kubernetes-release/release/stable.txt
# 下载最新版本
https://storage.googleapis.com/kubernetes-release/release/v1.22.2/bin/windows/amd64/kubecti.exe
# 配置kubectl.exe 指定文件路径
%KUBECTL_HOME%		kubectl.exe 文件路径
# curl 工具下载 可选
https://curl.se/windows/

验证

数据k9s即可进入k9s管理界面,根据快捷键,快速查看资源信息

参考文档

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐