k3s 部署, 使用注意事项
全栈工程师开发手册 (作者:栾鹏)
架构系列文章
官方地址:https://rancher.com/docs/k3s/latest/en/
环境配置
官方给出的k3s配置要求如下:
- 系统内核版本:Linux 3.10+ (CentOS 7, Debian 8/9, Ubuntu 14.04+)
- K3S Server端最低内存要求:512 MB
- K3S Agent端内存最低要求:75MB
- 磁盘空间最低要求:200 MB
- 支持的硬件架构:x86_64, ARMv7, ARM64
部署
浏览器打开网址
https://get.k3s.io
浏览器会自动跳转到(可能需要vpn才行)
https://raw.githubusercontent.com/rancher/k3s/master/install.sh
将install.sh另存到本地,在本地执行
sh install.sh
安装程序将kubeconfig文件写到/etc/rancher/k3s/k3s.yaml中
会自动下载安装k3s和额外的实用程序,如kubectl,crictl,ctr,k3s-killall.sh,和k3s-uninstall.sh。
在自动下载安装的过程中存在网络问题. 下载k3s的二进制可执行文件
下载k3s二进制可执行文件(地址可以根据sh install.sh的命令行打印显示获取)
https://github.com/rancher/k3s/releases/download/v0.10.2/k3s
之后上传此Binary到服务器端的 /usr/local/bin/k3s,并赋予可执行属性:
chmod +x /usr/local/bin/k3s
自动部署还会拉取k8s.gcr.io仓库下的镜像,由于网络问题在国内服务器上可能拉取不到,所以我们拉取国内镜像,然后改镜像名
docker pull registry.cn-beijing.aliyuncs.com/ilemonrain/pause-amd64:3.1
docker tag registry.cn-beijing.aliyuncs.com/ilemonrain/pause-amd64:3.1 k8s.gcr.io/pause:3.1
安装完成后,我们需要调整下K3S的服务配置文件,以将K3S的默认容器引擎从Containerd切换到Docker。这样才能在docker中控制你的镜像
修改K3S服务的配置文件:
vim /etc/systemd/system/multi-user.target.wants/k3s.service
文件内容如下:
[Unit]
Description=Lightweight Kubernetes
Documentation=https://k3s.io
After=network-online.target
[Service]
Type=notify
EnvironmentFile=/etc/systemd/system/k3s.service.env
ExecStartPre=-/sbin/modprobe br_netfilter
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/k3s server
KillMode=process
Delegate=yes
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
TimeoutStartSec=0
Restart=always
[Install]
WantedBy=multi-user.targe
在这里我们需要修改ExecStart的值,将其修改为:
/usr/local/bin/k3s server --docker --no-deploy traefik
之后保存退出,执行命令重新加载新的服务配置文件:
systemctl daemon-reload
完成后重启K3S服务:
service k3s restart
稍等数十秒,之后通过命令确认K3S集群是否就绪:
sudo k3s kubectl get node
如果得到类似如下的结果:
NAME STATUS ROLES AGE VERSION
luanpeng Ready master 14h v1.16.2-k3s.1
则说明K3S集群启动成功。
工作节点加入集群
要在工作程序节点上安装并将它们添加到集群中,我们应该将环境变量K3S_URL和K3S_TOKEN(或者K3S_CLUSTER_SECRET)一起传递。K3S_TOKEN在服务器的/var/lib/rancher/k3s/server/node-token
这是显示如何加入节点的示例:
curl -sfL https://get.k3s.io | K3S_URL=https://myserver:6443 K3S_TOKEN=XXX sh -
注意:每台计算机必须具有唯一的主机名。如果您的计算机没有唯一的主
使用kubectl命令
之前在k8s中的kubectl命令,需要在前面添加sudo k3s,例如查询节点
sudo k3s kubectl get node
如果我们把/etc/rancher/k3s/k3s.yaml
中的kubeconfig内容添加到~/.kube/config
文件中,那我们就可以直接通过kubectl控制k3s集群了
web监控
可以绑定rancher参考:https://yq.aliyun.com/articles/704089
或者部署dashboard, 然后用火狐浏览器(谷歌浏览器可能不行)打开dashboard service地址.
https://10.43.24.135:8443
pvc的使用
创建pv和pvc必须要加上storageClassName 字段
更多推荐
所有评论(0)