
Rancher 是一个开源的项目,提供了在产品环境中对 Docker 容器进行全方位管理的平台。它提供的基础架构服务包括多主机网络、全局和局部的负载均衡、卷快照等。集成了原生 Docker 管理能力,包括:Docker Machine 和 Docker Swarm。Rancher 还提供了丰富用户体验的管理功能。
Rancher 支持多种编排系统,支持多种 IaaS 网络服务和裸机。其架构如下:

🍃 我的物理机硬件:i5-12400CPU、12核、16G
🍃 VMware虚拟机配置,受限于我的电脑配置瓶颈,k8snode3这个节点我可能不会用上,不过可以把k8snode3这个节点和k8sMaster节点放在同一台机器上
| hostname | IP | 内容 | CPU | 内存 | 硬盘 |
| k8srancher | 172.16.0.128 | rancher | 8C | 7G | 40G |
| k8sMaster | 172.16.0.129 | master | 4C | 3G | 40G |
| k8snode1 | 172.16.0.130 | node | 4C | 2G | 40G |
| k8snode2 | 172.16.0.131 | node | 4C | 2G | 40G |
| k8snode3 | 172.16.0.132 | node | 4C | 2G | 40G |
🍃 虚拟机网络配置:
🍃 我将虚拟机的NET网络配置为桥接模式,在虚拟网络编辑器里将虚拟机网卡桥接至了物理机网卡,避免拉取k8s镜像时网络不稳定的情况发生

🍃 安装rancher前的虚拟机配置,每台都要配置,不然会出现些奇奇怪怪的问题
yum install -y ntpdate #下载ntpdate
ntpdate ntp1.aliyun.com #更新系统时间
hostnamectl set-hostname k8sRancher #依次更改系统主机名
#将以下IP和主机名信息写入每台虚拟机
cat >> /etc/hosts << EOF
172.16.0.128 k8srancher
172.16.0.129 k8sMaster
172.16.0.130 k8snode1
172.16.0.131 k8snode2
172.16.0.132 k8snode3
EOF
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #永久关闭防火墙
setenforce 0 #关闭selinux
#永久关闭selinux
sed -i "s#SELINUX=enforcing#SELINUX=disable#g" /etc/selinux/config
swapoff -a #关闭swap
sed -ri 's/.*swap.*/#&/' /etc/fstab #永久关闭swap
🍃 进入rancher官网
https://www.rancher.cn/quick-start/
🍃 主界面有安装方法,这里得保证机器里面都提前安装了docker
🍃 命令执行完后Rancher容器会自己启动
🍃 查看容器,已经启动了,我这里映射了宿主机81端口

🍃 然后访问Rancher宿主机IP,进入Rancher页面
🍃 这一步需要获取Rancher容器的id

🍃 查询Rancher容器id,执行:
docker logs 622f2837f003 2>&1 | grep "Bootstrap Password:"
🍃 会得到如下一串密码,将密码填入上面的password框,然后下一步:

🍃 这一步我自定义了密码,也就是rancher后期页面登录用的密码,账号是:admin

🍃 上一步设置完后,就进入首页了,这里点击创建

🍃 在现有的节点上使用RKE创建自定义集群

🍃 名字自定义,k8s版本我选的v1.18.20-rancher1-3,下一步

🍃 勾选 etcd、Control Plane,复制下面的命令在master机器上运行

🍃 在master机器执行命令,完毕确认镜像是否起来,以下是启动的master节点所有有关容器:

🍃 出现这个其实就可以点击Done了

🍃 这里等待集群状态显示为Active就说明好了,关于为什么node节点还没加我就Done,是因为我的机器实在拉跨,再继续添加一个node节点,我的虚拟机cpu会疯狂飙升,rancher页面会爆炸到直接失联

🍃 等rancher机器缓一缓,接下来可以添加node节点了
9.1、进入集群,添加注册新的节点,复制里面的命令,注意命令最后是带worker的,这个是node节点使用的

🍃 命令执行完成后,node节点rancher-agent容器已经运行起来了

🍃 rancher页面里面你得等它一会,它这会在干活儿,等rancher忙完新的node节点就会出现在集群节点中
🍃 比如这样,新的node节点已经出来了
🍃 k8snode3这台机器我终究还是没启用,错付了,我摊牌了,终究还是没有雨露均沾,这台要是起来,我这物理机就要变成老爷车了,卡到奔溃(这块儿真是老惨了,卡了我半小时),总结到这里还得是实验机器配置要给够,不给够的话,部署过程真就是一言难尽

🍃 下载kubeConfig

🍃 在需要部署kubectl的机器用户家目录下创建文件夹 .kube ,在 .kube 中创建文件config
🍃 将刚刚下载的kubeConfig文件的内容复制到config文件中
🍃 然后在机器里下载kubectl命令
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
🍃确定要下载的版本,我这里的k8s版本是v1.18.20,我就下载v1.18.20版本的kubectl
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.20/bin/linux/amd64/kubectl
🍃下载完成后将kubectl更换位置,放入以下目录
sudo mv ./kubectl /usr/local/bin/kubectl
🍃测试kubectl是否可以使用
kubectl get nodes #获取节点信息
#这里权限不够,给个可执行权限
chmod +x /usr/local/bin/kubectl

🍃kubectl已经可以使用了
🍃如果不想在机器安装kubectl,rancher集群管理页面命令行也可以直接使用kubectl命令


1、如果碰见ssl相关的报错,得看看是不是虚拟机网络配置有问题,关于k8s镜像拉取,作为虚拟机默认网络设置(net),会有可能不太好使,甚至有的小伙伴还会使用内网穿透(有这么费力嘛?)
2、Websocket Disconnected
The connection to wss://172.16.0.128/v1/subscribe closed unexpectedly Fri, Sep 30 2022 12:33:59 pm. Retrying...

🍁这个问题在我这还真就是配置不够导致的,后来我重新调整了虚拟机配置,也就是文章开头表格的配置才成功避开这个提示
3、Cluster health check failed: Failed to communicate with API server during namespace check: Get "https://172.16.0.129:6443/api/v1/namespaces/kube-system?timeout=45s": context deadline exceeded
🍁这个问题,看看是不是防火墙、selinux、swap这些没设置好导致的,也就是文章开头要求的前置配置,看看是不是有什么遗漏
🍃 展示下每个节点机器的运行的内容:
🍃 k8srancher

🍃 k8sMaster(etcd、Control Plane)
🍃 k8snode1(worker)

🍃 k8snode2(worker)

开门见山|拉取镜像dockerpullelasticsearch:7.16.1|配置存放的目录#存放配置文件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/config#存放数据的文件夹mkdir-p/opt/docker/elasticsearch/node-1/data#存放运行日志的文件夹mkdir-p/opt/docker/elasticsearch/node-1/log#存放IK分词插件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/plugins若你使用了moba,直接右键新建即可如上图所示依次类推创建
文章目录查看ES信息查看节点信息查看分片信息实际场景下ES分片及副本数量应该怎么分关于ES的灵活使用查看ES信息查看版本kibana:GET/查看节点信息GET/_cat/nodes?v解释:ip:集群中节点的ip地址;heap.percent:堆内存的占用百分比;ram.percent:总内存的占用百分比,其实这个不是很准确,因为buff/cache和available也被当作使用内存;cpu:cpu占用百分比;load_1m:1分钟内cpu负载;load_5m:5分钟内cpu负载;load_15m:15分钟内cpu负载;node.role:上图的dilmrt代表全部权限master:*代表
elasticsearch查看当前集群中的master节点是哪个需要使用_cat监控命令,具体如下。查看方法es主节点确定命令,以kibana上查看示例如下:GET_cat/nodesv返回结果示例如下:ipheap.percentram.percentcpuload_1mload_5mload_15mnode.rolemastername172.16.16.188529952.591.701.45mdi-elastic3172.16.16.187329950.990.991.19mdi-elastic2172.16.16.231699940.871.001.03mdi-elastic4172
(二十二)-框架主入口main.py设计&log日志调用和生成1测试目的2测试需求3需求分析4详细设计4.1新建存放日志目录log4.1.1配置config.py中写入log的目录4.2`baseInfo.py`中加入日志4.3`test_gedit.py`中加入日志4.4主函数入口main.py中调用日志5调用日志主函数main.py源码6`baseInfo.py`源码7`test_gedit.py`源码8运行效果9目前框架结构1测试目的组织运行所有的测试用例,并调用日志模块,便于问题定位。
(1)为什么写这个话题(Why)读万卷书不如行千里路。这次搭建MQTT服务,遇到了一些误解,特此记录备忘。主要包括:(1)服务(Broker)的账户管理与网页管理平台的账户(2)与web应用的集成(Spring系)(2)ActiveMQ版本选择因为JAVA环境是JDK8,所以按兼容性考虑选择了ActiveMQ5.15的最后版本5.15.15。如果你是JDK11则可考虑ActiveMQ的最新版本5.17或5.18。ActiveMQ支持MQTTv3.1.1andv3.1。(3)ActiveMQ与web应用的集成主要介绍与Spring系的webapp集成(SpringBoot和SpringMVC)。
Kubernetes(K8s)是一个用于管理容器化应用程序的开源平台,可以帮助开发人员更轻松地部署、管理和扩展应用程序。在Kubernetes中,集群划分是一种重要的概念,可以帮助我们更好地组织和管理集群中的节点和资源。本文将介绍如何使用Kubernetes对集群进行划分,并提供详细的操作示例,希望能够帮助读者更好地了解和使用Kubernetes平台。Node划分Node划分是将集群中的节点按照一定的规则进行划分。在Kubernetes中,可以使用NodeSelector和Affinity机制来实现Node划分。NodeSelectorNodeSelector是一种将Pod调度到符合特定节点标
这篇文章,主要介绍如何使用SpringCloud微服务组件从0到1搭建一个微服务工程。目录一、从0到1搭建微服务工程1.1、基础环境说明(1)使用组件(2)微服务依赖1.2、搭建注册中心(1)引入依赖(2)配置文件(3)启动类1.3、搭建配置中心(1)引入依赖(2)配置文件(3)启动类1.4、搭建API网关(1)引入依赖(2)配置文件(3)启动类1.5、搭建服务提供者(1)引入依赖(2)配置文件(3)启动类1.6、搭建服务消费者(1)引入依赖(2)配置文件(3)启动类1.7、运行测试一、从0到1搭建微服务工程1.1、基础环境说明(1)使用组件这里主要是使用的SpringCloudNetflix
文章目录Kubernetes(k8s)工作负载一、Workloads二、Pod三、Deployment四、RC、RS、DaemonSet、StatefulSet五、Job、CronJob1、Job2、CronJob六、GCKubernetes(k8s)工作负载一、Workloads什么是工作负载(Workloads)工作负载是运行在Kubernetes上的一个应用程序。一个应用很复杂,可能由单个组件或者多个组件共同完成。无论怎样我们可以用一组Pod来表示一个应用,也就是一个工作负载Pod又是一组容器(Containers)所以关系又像是这样工作负载(Workloads)控制一组PodPod控制
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我目前正在尝试搭建一个学习Ruby的开发环境。环境主要是为了掌握这门语言,但我很可能会在很长一段时间后转向使用Rails进行开发。以Web开发为目标,我想了解首选的Web服务器和数据库。我打算在虚拟机上设置环境,所以我不担心把它弄坏。因此,我愿意使用Linux发行版、OSX或Windows作为操作系统。我正从C#转向,所以我想在一定程度上被迫采用Ruby的
以太坊概论考察课更具课堂教学讲解,参考开放资料。使用所学的知识,创建项目并完成要求的内容。包含的功能和要求具体如下:一:安装并运行geth客户端1、下载安装geth首先下载geth:https://geth.ethereum.org/downloads/选择路径↓2、配置环境变量3、运行geth如下命令所示:查看geth命令。使用gethversion查看geth版本号,判断geth是否成功安装。如下命令所示:`gethversion`可以通过geth--help查看geth工具所支持的命令和相关参数,方便后期关于geth的操作。如下命令所示:geth--help运行结果如下:二:搭建get