Rancherv2.1.7搭建k8s入门demo以及相关服务部署
rancher2.x官网文档Rancher2.x安装及k8s集群部署rancher2.0构建kubernetes(K8S)集群K8S 部署 Rancher 2.X 版本最近在研究 kubernetes ,发现 rancher 是一个非常好用的容器管理平台,于是搭建这个小demoDocker的安装Centos7上安装docker安装 Rancher我是用 vagrant 部署了三台虚拟机:192.1
最近在研究 kubernetes ,发现 rancher 是一个非常好用的容器管理平台,于是搭建这个小demo
Docker的安装
安装 Rancher
我是用 vagrant
部署了三台虚拟机:
- 192.168.133.130 --> rancher 主机
- 192.168.133.131 --> 部署 k8s master 节点
- 192.168.133.132 --> 部署 k8s node 节点
执行以下命令即可完成 rancher 的搭建
sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 -v <主机路径>:/var/lib/rancher/ rancher/rancher:stable
之后,打开浏览器,输入https://<安装容器的主机名或IP地址>,您即可以访问Rancher Server的UI了.
进到来的主界面如上图所示(我已经成功搭建了一个集群)
注:我用的是 rancher v2.1.7
的版本
环境准备
参考官网的文章:基础环境配置
部署
成员角色
和 集群选项
可以按需设置,反正我没有设置
接下来自定义主机运行的命令:
由于我是用 vagrant
搭建的几台虚拟机,因此这几台虚拟机的 NAT 地址是相同的,故在部署的时候可能会出现 duplicate node
错误,可以参考下面命令部署:
# master
sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.1.7 --server https://192.168.133.130 --token d6jf698vpjknf77zkl2vd88fgw5pskjzwfmnwbxdwp685x8m662p78 --ca-checksum c25fc614ddd2b18a02bf5963182f8ab7b4db80f546ba00e8262efe0e56ea253f --internal-address 192.168.133.131 --address 192.168.133.131 --etcd --controlplane --worker
# worker
sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.1.7 --server https://192.168.133.130 --token 487d7vrknflrsk5gd5sbk78pdzfwnn92gz4rmtnmd9p7hnjgh2prxv --ca-checksum c25fc614ddd2b18a02bf5963182f8ab7b4db80f546ba00e8262efe0e56ea253f --internal-address 192.168.133.136 --address 192.168.133.136 --worker
关键的是要在运行命令中加上
--address
虚拟机ip 用来区分不同的虚拟机地址,否则基于我自己的情况,rancher 会用 绑定的 NAT 地址作为区分 node 的唯一标准
duplicate node
错误的解决:解决
您需要将--address 192.168.99.100 --internal-address 192.168.99.100添加到启动该节点的docker run命令中。Rancher 2.0(支持PRD)在用户界面中具有此选项。
重点还是要关注下 master
的节点,看看相关的网络插件是否成功获取。
正常的 master
节点所拉取的镜像如下所示:
之前就因为我选择的网络插件(calico) 的相关镜像没有成功获取到,所以报错:Runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
,相关解决的参考思路:kubernetes安装过程中遇到问题及解决
等待一段时间后,发现 4 个节点都部署成功了!
部署nginx服务
我之前已经成功部署了 nginx-test 的项目
添加项目
填写名称即可,其他按需添加
部署服务
选中该项目,部署服务
等待一段时间,结果如第一张图所示,非常简单!
部署minio服务
具体可参考这篇文章:通过K8S部署对象存储MinIO
从文件读取本地的部署 yaml 文件,点击导入即可
结果:
部署 Prometheus+Grafana 服务
Rancher 2.x 一键式部署 Prometheus + Grafana 监控 Kubernetes 集群
在项目的应用商店中找到 Prometheus
一键部署 prometheus
注:这张图的配置比较关键,如果没有配置好的话,后面的结果是看不到的
说明一下:
- Container Image 下
Use Default Image
项我选择否,因为默认中有两个镜像,由于墙的问题我本地网络无法获取的到,所以这里需要修改quay.io/coreos/kube-state-metrics
为huwanyang168/kube-state-metrics
,修改quay.io/coreos/grafana-watcher
为huwanyang168/grafana-watcher
,以上两个镜像对应的版本我已经上传到个人 Dockerhub 仓库。 - Prometheus Server 下
Hostname
我配置 Ingress 负载均衡域名为my-prometheus.k8s.com
,它会自动创建对应 Ingress,方便外部访问。 - Grafana setting 下
Grafana Admin password
项需要设置一下初始密码,方便登录 UI 页面。Hostname
我配置 Ingress 负载均衡域名为my-grafana.k8s.com
。 - Alertmanager 下
NodePort Http Port
项我设置为30005
,这样可以直接外部通过 NodePort 方式访问。
一切配置完毕,我们还可以点击预览,选择对应的模板,看下修改配置后的模板文件是怎样的,最后点击 “启动” 就会开始自动部署啦!稍等片刻,拉取镜像会费点时间,如果一切部署正常,在工作负荷、负载均衡、服务发现页面下 prometheus 命令空间下可以看到如下:
这时候发现所有 Prometheus 相关服务都部署成功了。还发现顺带把 grafana 也部署了,所以真省心。
访问 http://192.168.133.132:32116/
默认安装的 Grafana 已经配置好了 8 个 Dashboard,涉及到 Deployment、Nodes、Pods、Kubernetes Cluster Status 等监控仪表盘。
Kubernetes Capacity Planning
访问下 Prometheus
也是没问题的,不过这里要注意下虚拟机的时间和浏览器时间同步的问题,否则会有错误( datapoint not found
)
部署 emqx 服务
EMQ X 消息服务器默认占用的 TCP 端口包括:
端口 | 说明 |
---|---|
1883 | MQTT 协议端口 |
8883 | MQTT/SSL 端口 |
8083 | MQTT/WebSocket 端口 |
8080 | HTTP API 端口 |
18083 | Dashboard 管理控制台端口 |
到 dockerhub
上找到 emqx
, 配置文件如下所示:
成功部署后如下所示:
之后使用 emq 客户端 mqttx
新注册两个用户 test
,test1
, 通过订阅相同的主题可以实现类似聊天的功能
其实安装和入门还是非常简单的!
更多推荐
所有评论(0)