Docker安装Rancher
使用自己的SSL证书的安装方法
说明:
1.-t 表示分配一个终端(TTY)给容器,以便可以与其进行交互。-i 表示标准输入保持打开状态,以便可以输入命令或查看容器输出。-d 表示容器以后台模式运行。
2.- -h rancher-rancher: 这个选项设置了容器的主机名为 "rancher-rancher"。主机名是容器在网络中标识自己的名称,它通常用于内部网络通信、身份验证和服务发现等目的。
3.--no-cacerts 作为容器的参数,来禁用由 Rancher 生成的默认 CA 证书
4.stable为最新稳定版本,可用于生产环境
#不使用自定义证书
sudo docker run --privileged -d \
--restart=unless-stopped \
-p 80:80 -p 443:443 \
-v /mnt/d/rancher_data:/var/lib/rancher/ \
--privileged \
rancher/rancher:stable
#使用自定义证书
docker run -d \
--restart=unless-stopped \
-p 8086:80 -p 44386:443 \
-v /etc/rancher/ssl:/container/certs \
-e SSL_CERT_DIR="/container/certs" \
--privileged \
rancher/rancher:stable
#使用自定义证书并且设置相关资源参数
docker run -tid \
--name rancher-rancher \
-h rancher-rancher \
--memory 4g \
--memory-swap -1 \
--restart unless-stopped \
-p 8086:80 \
-p 44386:443 \
-v /etc/rancher/ssl/:/etc/rancher/ssl/ \
--privileged \
rancher/rancher:stable \
--no-cacerts
Rancher版本2.5.15
遇到的问题:
1、主机节点宕机,导致整个集群不可用
原因:集群至少需要三个节点才能组成高可用,我出现这个问题是因为集群中只有两个节点,一个宕机了,另外一个无法接管集群
Rancher 创建下游集群的节点分为 3 个角色,ETCD、controlplan、worker。你可以把这三个角色安装到同一个节点,也可以拆开,每个节点安装一个角色。
ETC 的高可用需要奇数个节点,推荐 3 个节点,因为节点故障的情况下,拥有奇数个 ETCD 节点可以帮助选择领导者
controlplan的话,只要大于 1 个,就可以自动组成高可用了,也就是说最少 2 个就行
worker 节点就是你创建 pod 的节点
2、k8s节点拉取本地私有镜像仓库时,由于私有仓库没有设置https,导致拉取失败
解决方法:
- 设置私有仓库为https访问
- 修改rancher配置文件,以及docker配置文件
- 修改rancher配置文件,进入rancher容器,修改/etc/rancher/k3s/registries.yaml
2.修改主机节点的docker配置 (注意是在k8s的各个主机节点配置,而不是在rancher节点配置,因为部署项目时是各个主机节点去拉取镜像) 修改(没有的可以新增,跟修改docker阿里镜像仓库的配置时同一个文件)/etc/docker/daemon.jsonmirrors: docker.io: endpoint: - "http://192.168.124.xxx:8081" configs: "192.168.124.xxx:8081": auth: username: harbor账号 password: harbor密码 192.168.124.xxx:8081 是你的私有harbor访问地址 配置完之后需要重启rancher容器 docker restart rancher{ "registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"], "insecure-registries":["192.168.xxx.xxx:端口"] }registry-mirrors
配置阿里镜像
insecure-registries
配置我们自己私有的镜像仓库访问地址(记得把IP和端口替换成自己的)
使用systemctl reload docker重载配置文件
不起效的话试试重启Dockersystemctl restart docker
3、主机节点IP变换,导致节点不可用
(本人是把旧主机节点的系统硬盘换到了另外一台设备上使用导致的)
解决方法:
在新主机节点上从新执行rancher新增节点的docker 命令
(进到某个集群中,点击右侧三个点菜单,选择registration cmd)
sudo docker run -d --privileged --restart=unless-stopped --net=host -v
/etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.5.15
--server https://192.168.124.46 --token xxx --ca-checksum xxx --worker