Rancher部署k8s集群

Rancher部署

Rancher是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。

首先所有节点部署docker

安装docker

安装docker依赖

yum install wget expect vim net-tools ntp bash-completion ipvsadm ipset jq iptables conntrack sysstat libseccomp conntrack ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git yum-utils device-mapper-persistent-data lvm2 -y

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

dnf repo-pkgs docker-ce-stable list

yum list docker-ce --showduplicates | sort -r #查看docker的版本

yum -y install docker-ce-19.03.9-3.el7 #例如安装19.03.9版本

yum -y erase podman buildah #centos8需要删除podman
yum install docker-ce -y #安装最新版docker

yum install -y docker-ce-19.03.9-3.el7

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://4bsnyw1n.mirror.aliyuncs.com"],
"exec-opts":["native.cgroupdriver=systemd"]
}
EOF

启动docker

systemctl daemon-reload ; systemctl restart docker;systemctl enable --now docker.service

docker version

docker info

配置时间同步

确认时间服务已经安装

yum -y install chrony

vim /etc/chrony.conf

cat > /etc/chrony.conf <<-'EOF'
pool 192.168.5.150 iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
allow 192.168.5.0/24
local stratum 10
keyfile /etc/chrony.keys
leapsectz right/UTC
logdir /var/log/chrony
EOF

启动时间服务:
systemctl restart chronyd.service --now

设置完时区后,强制同步下系统时钟: chronyc -a makestep

查看时间同步源: chronyc sources -v

查看时间同步源状态: chronyc sourcestats -v

重启依赖于系统时间的服务

systemctl restart rsyslog ; systemctl restart crond

系统日志保存方式设置:

原因:centos7以后,引导方式改为了systemd,所以会有两个日志系统同时工作只保留一个日志(journald)的方法 设置rsyslogd 和 systemd journald

持久化保存日志的目录

mkdir /var/log/journal
mkdir /etc/systemd/journald.conf.d

cat  >  /etc/systemd/journald.conf.d/99-prophet.conf <<-'EOF'
[Journal]
#持久化保存到磁盘
Storage=persistent
# 压缩历史日志
Compress=yes
SyncIntervalSec=5m
RateLimitInterval=30s
RateLimitBurst=1000
# 最大占用空间10G
SystemMaxUse=10G
# 单日志文件最大200M
SystemMaxFileSize=200M
# 日志保存时间 2 周
MaxRetentionSec=2week
# 不将日志转发到 syslog
ForwardToSyslog=no
EOF

#重启journald配置
systemctl restart systemd-journald

设置主机名

主机ip与域名的对应关系 设置主机名

cat > /etc/hosts <<-'EOF'
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.5.150 rancher
192.168.5.151 k8s-master-01
192.168.5.152 k8s-node-02
192.168.5.153 k8s-node-03
EOF

关闭防火墙 SELinux 与swap交换空间

并关闭swap三台主机 并安装docker 本例安装版本为docker-ce-19.03.9-3.el7 设置好时间服务器

sed -ri 's/.swap./#&/' /etc/fstab

下载rancher

https://hub.docker.com/ rancher

在master端执行如下命令

docker pull rancher/rancher:v2.5.2-linux-amd64

dockerhub 点击overview进入官方站点

运行rancher

docker run -d --privileged -p 80:80 -p 443:443 --restart=always --name rancher-v2.5.2 rancher/rancher:v2.5.2-linux-amd64

或者以下这样

mkdir -p /mnt/d/rancher_data

docker run -d --privileged -p 80:80 -p 443:443 -v /mnt/d/rancher_data:/var/lib/rancher/ --restart=always --name rancher-v2.5.2 rancher/rancher:v2.5.2-linux-amd64

安装最新版本的rancher时必须指定--privileged参数。简单来说使用了改参数后,容器内的root拥有真正的root权限。
在启动时如果需要持久化racher应用数据,可以挂载一个目录。-v /mnt/d/rancher_data:/var/lib/rancher/ 这样rancher的应用数据就存储在了 /mnt/d/rancher_data 目录中。根据官方的建议,rancher的运行内存要求至少4GB内存。运行安装命令后,浏览器访问 https:<主机域名或IP>

浏览器登录 设置密码与rul访问路径,并切换为中文环境

首先配置一个标准用户:

配置新的集群

创建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.5.2 --server https://192.168.110.147 --token cl78vbfnv96vfc88plrmq5c295tptzq5k7ff5pv8l28vhp75s4wqh4 --ca-checksum 699da741eb03976a3bb89db64c73e290fa05273cc5e6a26f9083ae0b714c7919 --etcd --controlplane --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.5.2 --server https://192.168.110.147 --token 5pbfhpfczc2m26pfzkncv68xsg74sthqn5mc2qqzcz8q92wp75fnkr --ca-checksum 23d95b968d947319dc078eb7568ff28b210c0e534b34eb8b7cffd82bf8c10433 --worker

无网状态Rancher部署k8s集群

待更新

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/57964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

边缘计算相关概念--学习笔记

一.边缘计算概念 边缘计算将数据的处理&#xff0c;应用程序的运行甚至一些功能服务的实现&#xff0c;由网络中心下放到网络边缘的节点上&#xff0c;在网络边缘侧的智能网关上就近采集并且处理数据&#xff0c;不需要将大量未处理的数据上传到远程的大数据平台。边缘计算理论…

Windows版本Docker安装详细步骤

文章目录 下载地址安装异常处理docker desktop requires a newer wsl 下载地址 https://desktop.docker.com/win/stable/Docker%20Desktop%20Installer.exe 安装 双击下载的文件Docker Desktop Installer.exe进行安装 点击OK 开始安装 安装完成点击Close and restart&…

如何在vscode导入下载的插件安装包

点击vscode插件 --> 点击3个点 --> 选择从VSIX安装 点击更新报 Cannot update while running on a read-only volume. The application is on a read-only volume. Please move the application and try again. If you’re on macOS Sierra or later, you’ll need to m…

【Linux】【驱动】注册字符设备号

【Linux】【驱动】注册字符设备号 1. 绪论1 、静态分配设备号2、动态分配设备号3、注销设备号 2 实现的代码3 加载驱动程序 1. 绪论 在之前杂项设备的时候&#xff0c;设备号是固定的&#xff0c;字符设备就需要自己去申请设备号了&#xff0c; 申请设备号有两个方式&#xff…

linux 设置与命令基础(二)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、系统基本操作 二、命令类型 三、命令语法 四、命令补齐 五、命令帮助 六、系统基本操作命令 总结 前言 这是本人学习Linux的第二天&#xff0c;今天主…

dockerfile 例子(二)

Dockerfile由一行一行的命令语句组成&#xff0c;#开头的为注释行。Dockerfile文件内容分为四个部分&#xff1a;基础镜像信息、维护者信息、镜像操作指令以及容器启动执行指令。 接下来给大家列出Dockerfile中主要命令的说明。 FROM&#xff0c;指定所创建镜像的基础镜像。 …

path模块

path.resolve() 作用&#xff1a;path.resolve() 该方法将一些的 路径/路径段 解析为 绝对路径。 path.resolve总是返回一个以相对于当前的工作目录&#xff08;working directory&#xff09;的绝对路径。给定的路径序列从右到左处理&#xff0c;每个后续的 path 会被追加到前…

关于单例模式

单例模式的目的&#xff1a; 单例模式的目的和其他的设计模式的目的都是一样的&#xff0c;都是为了降低对象之间的耦合性&#xff0c;增加代码的可复用性&#xff0c;可维护性和可扩展性。 单例模式&#xff1a; 单例模式是一种常用的设计模式&#xff0c;用简单的言语说&am…

RabbitMQ的镜像队列

镜像队列 如果 RabbitMQ 集群中只有一个 Broker 节点&#xff0c;那么该节点的失效将导致整体服务的临时性不可用&#xff0c;并且也可能会导致消息的丢失。可以将所有消息都设置为持久化&#xff0c;并且对应队列的durable 属性也设置为 true &#xff0c;但是这样仍然无法…

文件上传漏洞之条件竞争

这里拿upload-labs的第18关做演示 首先先看代码 $is_upload false; $msg null;if(isset($_POST[submit])){$ext_arr array(jpg,png,gif);$file_name $_FILES[upload_file][name];$temp_file $_FILES[upload_file][tmp_name];$file_ext substr($file_name,strrpos($file_…

element-ui 自定义loading加载样式

element-ui 中的 loading 加载功能&#xff0c;默认是全屏加载效果&#xff0c; 设置局部&#xff0c;需要自定义样式&#xff0c;自定义的方法如下&#xff1a; import { Loading } from element-uiVue.prototype.$baseLoading (text) > {let loadingloading Loading.s…

[Android AIDL] --- AIDL工程搭建

0 AIDL概念 AIDL&#xff08;Android Interface Definition Language&#xff09;是一种 IDL 语言&#xff0c;用于生成可以在 Android 设备上两个进程之间进行进程间通信&#xff08;IPC&#xff09;的代码。 通过 AIDL&#xff0c;可以在一个进程中获取另一个进程的数据和调…

Debian 10 更换国内源 (中科大、网易源、阿里云)

1. 修改文件 /etc/apt/sources.list 为下面内容 根据自己需求决定使用哪个源 # Debian 10 buster# 中科大源deb http://mirrors.ustc.edu.cn/debian buster main contrib non-free deb http://mirrors.ustc.edu.cn/debian buster-updates main contrib non-free deb http://m…

HarmonyOS/OpenHarmony(Stage模型)卡片开发应用上下文Context使用场景二

3.创建其他应用或其他Module的Context 基类Context提供创建其他应用或其他Module的Context的方法为createModuleContext(moduleName:string)&#xff0c;创建其他应用或者其他Module的Context&#xff0c;从而通过该Context获取相应的资源信息&#xff08;例如获取其他Module的…

解决pandas读取excel单元格出错_x0000_

解决方法 如果已经读出来了这个问题&#xff0c;那么就只能使用replace替换了&#xff1a; import pandas as pddef change_excel_char(value):"""剔除读取excel中的 _x0000_ 字符"""if type(value) str:return value.replace("_x0000_&…

测试数据库性能的工具知多少

有许多测试数据库性能的工具&#xff0c;以下是一些常用的工具&#xff1a; sysbench: 这是一个跨平台的基准测试工具&#xff0c;可以测试多种系统资源&#xff0c;包括CPU&#xff0c;内存&#xff0c;IO&#xff0c;和并发性。对于数据库测试&#xff0c;sysbench可以用来测…

切换Debian的crontab的nano编辑器

Debian的crontab默认的编辑器是nano&#xff0c;用起来很不习惯,怎么才能转回vim呢? 用以下命令便可&#xff1a; #update-alternatives --config editor 出现以下所示的界面&#xff1a; 而后选择8使用/usr/bin/vim就能够了。 PS&#xff1a;若是你发现你的定时没有生效&…

memset()

如果你想要清零一段内存区域&#xff0c;可以使用 memset() 函数将该区域的所有字节设置为零。以下是 memset() 函数的使用示例&#xff1a;c #include <stdio.h> #include <string.h>int main() {char data[10] "Hello";// 使用 memset() 将 data 的内…

【WSN无线传感器网络恶意节点】使用 MATLAB 进行无线传感器网络部署研究

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

监听的用法watch

1、当想停止某页面定时刷新&#xff08;监听路由的变化&#xff09; /**组件被移除时调用 */deactivated() {clearInterval(this.timer);this.timer null;},/**监听路由变化是否刷新 */watch: {// 方法1 //监听路由是否变化$route(to, from) {if (to.name "xxx") {…