前言:鉴于我已经部署了k8s集群,那就在部署rancher一台用于管理k8s,这是一台单独的虚拟环境,之前在k8s的master节点上进行部署并未成功,有可能端口冲突了,这个问题我并没有深究,如果非要通过修改端口等操作部署上去后续可能带来的问题我处理不了,也很浪费时间,所以我单独部署了一台新的环境。
这是我的上两篇部署docker和k8s的文章:
http://t.csdn.cn/1l28d docker部署
http://t.csdn.cn/hPXIe k8s部署
目录
一、环境
二、使用docker部署rancher
2.1 先添加docker源不然下载慢
2.2 拉取rancher镜像
2.3 启动rancher
2.4 找一个与虚拟机同一网络坏境的主机通过浏览器访问rancher
三、设置rancher
3.1 初始化rancher (每个版本的初始化页面可能不一样但是大差不差)
3.2 设置自己的密码
四、导入k8s集群
4.1切换中文
4.2选择导入已有集群
4.3起名,然后点创建
4.4查找kubelet配置文件
4.5查看kubelet配置中的USER_ACCOUNT
4.6然后执行如下命令,注意替换 --user 后的内容
4.7在浏览器中访问(图一)的yaml连接,也就是刚创建集群的时候三选一中链接得到rancher版本
4.8提前在所有的node节点节点上下载这个rancher/rancher-agent:v2.6.3镜像
4.9 在master执行(图一)中的链接
五、检查
5.1 检查会发现k8s中多了一个cattle-system的命名空间 在k8s的宿主机中执行
5.2 cattle-system的命名空间下创建了cattle-cluster-agent和cattle-node-agent的pod
5.3 然后在rancher的页面进行查看,这里取决于宿主机的配置,我笔记本配置低,很久才显示active的状态
5.4 要是我们上面的 Kubernetes 持续处于 Pending 时,我们可以 在k8s的宿主机上执行如下命令进行查看
一、环境
Centos 7,docker18.06.1-ce,VMware16
二、使用docker部署rancher
2.1 先添加docker源不然下载慢
vim /etc/docker/daemon.json
{"registry-mirrors": ["https://98pf6xb4.mirror.aliyuncs.com","http://hub-mirror.c.163.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"}}
2.2 拉取rancher镜像
docker pull rancher/rahcher
2.3 启动rancher
docker run -itd --privileged --restart=unless-stopped -p 80:80 -p 443:443 --name rancher rancher/rancher:latest
2.4 找一个与虚拟机同一网络坏境的主机通过浏览器访问rancher
http://宿主机IP:端口
如果映射的是80端口就不用加端口号
三、设置rancher
3.1 初始化rancher (每个版本的初始化页面可能不一样但是大差不差)
3.2 设置自己的密码
选择自己设置密码,将如下页面的命令复制至rancher的宿主机的命令窗口执行,通过docker ps 得到容器的id,然后 将复制的命令中的container-id替换掉,然后就会得到初始的密码,登录后提示先修改密码
四、导入k8s集群
4.1切换中文
4.2选择导入已有集群
4.3起名,然后点创建
(图一)
4.4查找kubelet配置文件
ps -ef | grep kubelet
4.5查看kubelet配置中的USER_ACCOUNT
4.6然后执行如下命令,注意替换 --user 后的内容
kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin --user system:node:HOSTNAME
4.7在浏览器中访问(图一)的yaml连接,也就是刚创建集群的时候三选一中链接得到rancher版本
4.8提前在所有的node节点节点上下载这个rancher/rancher-agent:v2.6.3镜像
docker pull rancher/rancher-agent:v2.6.3
4.9 在master执行(图一)中的链接
curl --insecure -sfL https://192.168.56.201/v3/import/vg984cdxh9h4zspkctddhlzbjkwk84zfknx9d8x8pprhrkql8pf79c_c-m-4ffpn2qv.yaml | kubectl apply -f -
五、检查
5.1 检查会发现k8s中多了一个cattle-system的命名空间 在k8s的宿主机中执行
[root@k8s-master01 work]# kubectl get nsNAME STATUS AGEcattle-system Active 18mdefault Active 3d19hkube-node-lease Active 3d19hkube-public Active 3d19hkube-system Active 3d19h
5.2 cattle-system的命名空间下创建了cattle-cluster-agent和cattle-node-agent的pod
[root@k8s-master01 work]# kubectl get pods -n cattle-systemNAME READY STATUS RESTARTS AGEcattle-cluster-agent-87944bb89-9l8vn 1/1 Running 0 18mcattle-node-agent-24vnp 1/1 Running 0 18mcattle-node-agent-86hdx 1/1 Running 0 18mcattle-node-agent-qz59v 1/1 Running 0 18m
[root@k8s-master01 work]# kubectl get deployment -n cattle-systemNAME READY UP-TO-DATE AVAILABLE AGEcattle-cluster-agent 1/1 1 1 19m
[root@k8s-master01 work]# kubectl get daemonset -n cattle-systemNAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGEcattle-node-agent 3 3 3 3 3 <none> 19m
5.3 然后在rancher的页面进行查看,这里取决于宿主机的配置,我笔记本配置低,很久才显示active的状态
5.4 要是我们上面的 Kubernetes 持续处于 Pending 时,我们可以 在k8s的宿主机上执行如下命令进行查看
kubectl get pod -n cattle-system # 查看 Rancher状态