先运行rancher容器
docker run -d --restart=unless-stopped \
-p 5060:80 -p 5443:443 \
-v /data/rancher/data:/var/lib/rancher/ \
-v /data/rancher/log:/var/log/auditlog \
rancher/rancher:stable (或者rancher/rancher:latest)
再根据提示添加集群
curl --insecure -sfL https://rancher.test.com:5443/v3/import/trpg8m5fdmxz54pwh479prz29rnp8c52fr7gwspxl2nxhxzgp7z5qg.yaml | kubectl delete -f -
这里可以看到,由于初始化rancher时,我使用的是域名+端口
所以添加集群时提示下载的yml的地址也是
https://rancher.test.com:5443/v3/import/trpg8m5fdmxz54pwh479prz29rnp8c52fr7gwspxl2nxhxzgp7z5qg.yaml
rancher.test.com:5443
执行该yml后发现有个pod启动不成功
查看日志
kubectl logs -f pod名字 -n cattle-system
发现提示
INFO: Using resolv.conf: nameserver 10.1.0.10 search cattle-system.svc.cluster.local svc.cluster.local cluster.local 114.114.114.114 options ndots:5
ERROR: https://rancher.test.com:5443/ping is not accessible (Could not resolve host: rancher.test.com)
很明显就是读取的resolv.conf,里面指向114.114.114.114
但是我在网络里面并没有配置dns服务器,所以访问不了114.114.114.114去解析域名
所以导致Could not resolve host: rancher.test.com
经过百度发现,在启动pods时,可以给容器内部的hosts文件添加域名解析。
原文:https://blog.csdn.net/weixin_44723434/article/details/93904699
由于我的是deployment,所以添加的位置不一样
apiVersion: apps/v1
kind: Deployment
metadata:
name: cattle-cluster-agent
namespace: cattle-system
spec:
replicas: 1
selector:
matchLabels:
app: cattle-cluster-agent
template:
metadata:
labels:
app: cattle-cluster-agent
spec:
hostAliases:
- ip: "192.168.200.101"
hostnames:
- "rancher.test.com"
主要是这个
hostAliases:
- ip: "192.168.200.101"
hostnames:
- "rancher.test.com"
再配置nginx反向代理配置rancher。。这里略