k3s集群管理rancher2.3 server安装
参考官方教程: https://www.cnrancher.com/quick-start
Rancher Server名字听起来感觉像是又要装一大堆东西,其实并不是这样。Rancher Server其实只是一个Docker镜像,整个Rancher的程序都使用Docker打包起来了。所以相对来讲配置很简单,只需要一条命令:
docker run -d -v /data/docker/rancher-server/var/lib/rancher/:/var/lib/rancher/ --restart=unless-stopped --name rancher-server -p 80:80 -p 443:443 rancher/rancher:stable
然后等待几分钟,喝杯82年的雪碧压压惊(划掉),之后访问你的Server IP即可进入Rancher Server的首次配置界面。
如果你不想让Rancher占用你的80/443端口(比如前端要放个Caddy反代),只需要按照以下步骤操作:
修改启动命令行:
docker run -d -v /data/docker/rancher-server/var/lib/rancher/:/var/lib/rancher/ --restart=unless-stopped --name rancher-server -p 80:80 -p 443:443 rancher/rancher:stable
将里面的80和443,替换为你需要的端口(注意:请不要占用Kubernetes的6443端口,这一步很容易翻车!),换完的效果大概是这样:
docker run -d -v /data/docker/rancher-server/var/lib/rancher/:/var/lib/rancher/ --restart=unless-stopped --name rancher-server -p 9080:9080 -p 9443:9443 rancher/rancher:stable
启动Rancher Server容器
执行命令,确认Rancher Server容器的Container ID,本例中的容器ID为 31aa94998b75:
docker ps | grep "rancher/rancher:stable"
执行命令,切入到Rancher Server容器的Bash Shell中(TTY):
docker exec -it 31aa94998b75 bash
此时你会发现你的提示符变成了这个样子:
root@31aa94998b75:/var/lib/rancher#
这时候你控制的就是Rancher Server的容器,如果你能够成功切入Shell,那么请继续下一步,如果未能切入,请使用 docker logs 31aa94998b75 来确认容器发生了什么奇怪的事情。
我们先开看下要改的文件长什么样子(下面是文件的内容,不是执行的命令):
#!/bin/bash
set -e
exec tini -- rancher --http-listen-port=80 --https-listen-port=443 --audit-log-path=${AUDIT_LOG_PATH} --audit-level=${AUDIT_LEVEL} --audit-log-maxage=${AUDIT_LOG_MAXAGE} --audit-log-maxbackup=${AUDIT_LOG_MAXBACKUP} --audit-log-maxsize=${AUDIT_LOG_MAXSIZE} "${@}"
执行命令,替换默认的端口:
sed -i "s/80/9080/g" /usr/bin/entrypoint.sh
sed -i "s/443/9443/g" /usr/bin/entrypoint.sh
执行后看下变成了什么样子:
#!/bin/bash
set -e
exec tini -- rancher --http-listen-port=9080 --https-listen-port=9443 --audit-log-path=${AUDIT_LOG_PATH} --audit-level=${AUDIT_LEVEL} --audit-log-maxage=${AUDIT_LOG_MAXAGE} --audit-log-maxbackup=${AUDIT_LOG_MAXBACKUP} --audit-log-maxsize=${AUDIT_LOG_MAXSIZE} "${@}""
确认修改成功后,使用 exit 命令退出容器的Bash Shell,之后执行命令重新启动Rancher Server容器:
docker restart 31aa94998b75
之后使用新的端口访问Rancher Server的UI(下面的连接为例子):
访问会提示SSL证书无效,无视错误继续即可。
https://192.168.6.134:9443/
导入K3S集群到Rancher
Rancher Server上,显示集群状态为Pending,
这是因为我们还未导入集群,这一步我们将导入集群,并建立Rancher Server与K3S集群的联系。
在K3S的主控节点(一般情况下,第一个节点都是主控制器,也叫Server节点)上,执行命令,导入集群:
复制导入界面的最后一条命令,去服务器上执行,然后等待导入完成。
curl --insecure -sfL https://10.248.21.2/v3/import/jr42wvdhk4w94htxxtf5hv424rsjjz6hzq9vl2lj8q9dnb8dgcwgzn.yaml | kubectl apply -f -
注意:每个集群的导入命令都不一样,请不要直接照搬教程中的导入命令!
若报错则重新执行一次
之后Shell中会返回一下信息,说明集群导入配置成功:
namespace/cattle-system created
serviceaccount/cattle created
clusterrolebinding.rbac.authorization.k8s.io/cattle-admin-binding created
secret/cattle-credentials-7c9ef0a created
clusterrole.rbac.authorization.k8s.io/cattle-admin created
deployment.extensions/cattle-cluster-agent created
daemonset.extensions/cattle-node-agent created
回到Rancher界面,稍微等数十秒,我们会发现Pending状态变成了Waiting状态:
出现这个提示说明Rancher已经收到K3S的注册请求,正在完成K3S集群的注册工作,再等数十秒种的时间即可完成K3S集群的导入工作。
到这里,我们成功的完成了Rancher 2.x和K3S的对接工作,可以像操作K8S集群那样操作K3S集群了。
参考地址
https://yq.aliyun.com/articles/704089
https://blog.ilemonrain.com/docker/rancher-with-k3s.html
附件 |
k3s-(4)k3s集群管理rancher2.3 server安装.docx |