K3S+Rancher

1.查看系统版本,架构等情况便于后续采用对应的安装包以及命令

查看系统版本

uname -a

查看系统命令集

uname -m

这是我系统配置情况

服务器清单
名称IP配置系统
主-服务192.168.23.1714Cpu8GUbuntu 20.04.6
副主-服务192.168.23.1034Cpu8GUbuntu 20.04.6
代理-服务192.168.23.2484Cpu8GUbuntu 20.04.6
外置均衡代理192.168.23.2054Cpu8GUbuntu 20.04.6

2.配置服务器

2.1服务器源配置

修改/etc/apt/sources.list文件

2.2服务器host配置

修改主机服务名称,最好与下面的hosts中的名称相同

vi /etc/hostname

修改host文件,写主机映射的域名,每个服务器都要进行设定 

vi /etc/hosts
#主服务器
192.168.23.171 k3s-master-server
#副主服务
192.168.23.103 k3s-server
#代理
192.168.23.248 k3s-agent

2.3服务器时间配置

 保持服务器主机时间一致,可以开启同步

2.4处理磁盘挂载

2.4.1磁盘挂载

参考文章

这里注意要关闭 swap,在 /etc/fstab文件中的swap前添加#号

2.4.2创建与k3s和rancher相关的目录,独立存储

mkdir /data
mkdir /data/k3s
mkdir /data/k3s/k3s
mkdir /data/k3s/kubelet 
mkdir /data/k3s/rancher

2.4.3建立软链接

ln -s /data/k3s/k3s /run/k3s
ln -s /data/k3s/kubelet /var/lib/kubelet
ln -s /data/k3s/rancher /var/lib/rancher

 2.5其他内容安装

添加iscsi命令支持

apt-get install open-iscsi

调整忘了配置

vi /etc/sysctl.conf
net.ipv4.ip_forward=l
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_timestamps=1

 使配置生效

/sbin/sysctl -p

 调整dns

避免网络的问题,适当调整dns

vim /etc/resolv.conf
nameserver 8.8.8.8
nameserver 114.114.114.114

2.安装nginx配置,tcp转接,实现负载均衡

外置均衡代理服务器主要安装nginx,用于TCP转接实现负载均衡处理。并用于部分静态文件存储配置nginx.conf文件如下:psstjz.com

 stream {upstream k3s_servers  {server 192.168.23.248:6443;server 192.168.23.103:6443;server 192.168.23.171:6443;}server {listen 6443;proxy_pass k3s_servers;}
}

3.添加镜像仓库

4.离线安装k3s

4.1拷贝离线文件

拷贝离线k3s执行文件、k3s-airgap-images-amd64.tar到数据存储目录

创建镜像文件对应目录,并拷贝离线文件

mkdir -p /var/lib/rancher/k3s/agent/images/
cp ./k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/

拷贝k3s执行文件,并且赋权

chmod 755 k3s
cp k3s /usr/local/bin/

4.2外部安装数据库(可选)

   本次安装外部安装mysql数据库,并且创建k3s数据库

4.3k3s安装

有需要可以将sh脚本下载成文件(注意同样要修改权限)

4.3.1主-服务安装

安装过程中如果提示缺啥就装啥,每个k3s服务器都装

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_VERSION=v1.26.9+k3s1 INSTALL_K3S_MIRROR=cn INSTALL_K3S_SKIP_DOWNLOAD=true sh -s - server --datastore-endpoint="mysql://用户名:密码@tcp(ip地址:端口)/k3s"

4.3.2查询token
 

cat /var/lib/rancher/k3s/server/token

复制主机token信息

4.3.3副主-服务安装

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_SKIP_DOWNLOAD=true  INSTALL_K3S_VERSION=v1.26.9+k3s1  sh  -s - server --datastore-endpoint="mysql://账号:密码@tcp(ip地址:端口)/k3s" --token "主服务token"

4.3.4代理安装

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_SKIP_DOWNLOAD=true   K3S_URL=https://域名(host中编写的主机服务域名):6443 INSTALL_K3S_VERSION=v1.26.9+k3s1 K3S_TOKEN="主服务token" sh -

4.3.5设置镜像资源

vi /etc/rancher/k3s/registries.yaml

内容如下:

mirrors:镜像库域名或者ip:endpoint:- "https://镜像库域名或者ip"
configs:镜像库域名或者ip:auth:username: 镜像仓库的用户名password: 镜像仓库的密码tls:insecure_skip_verify: true #跳过安全认证

4.3.6设置集群配置文件

两个主服务中复制配置文件到root中,并且修改中间的127.0.0.1为nginx中配置的负载均衡域名

kubectl --kubeconfig ~/.kube/config get pods --all-namespaces 

4.3.7重启服务

重新加载配置文件

systemctl daemon-reload

重新启动主-服务

systemctl restart k3s

重启副主-服务

systemctl restart k3s-agent

5.离线安装rancher

5.1准备离线文件

 根据版本不同下载不同文件rancher-2.7.9.tgz,cert-manager-v1.13.2.tgz

提前通过镜像库下载镜像文件

k3s crictl pull 镜像库域名/rancher/rancher:v2.7.9

 5.2安装cer-manager仓库

5.2.1创建命名空间

kubectl create namespace cert-manager

5.2.2创建资源定义

kubectl apply -f cert-manager/cert-manager-crd.yaml

 5.2.3安装cert-manager

helm install cert-manager ./cert-manager-<VERSION>.tgz \--namespace cert-manager \--set image.repository=镜像库域名地址/quay.io/jetstack/cert-manager-controller \--set webhook.image.repository=镜像库域名地址/quay.io/jetstack/cert-manager-webhook \--set cainjector.image.repository=镜像库域名地址/quay.io/jetstack/cert-manager-cainjector \--set startupapicheck.image.repository=镜像库域名地址/quay.io/jetstack/cert-manager-ctl

 5.3安装rancher

5.3.1创建命名空间

kubectl create namespace cattle-system

5.3.2安装rancher 

helm install rancher ./rancher-2.7.9.tgz --namespace cattle-system --set hostname=负载均衡地址 --set rancherImage=镜像库域名地址/rancher/rancher --set systemDefaultRegistry=镜像库域名地址/rancher --set useBundledSystemChart=true

 5.3.3获取初次登录密码

kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{.data.bootstrapPassword|base64decode}}{{"\n"}}'

6.其他内容

6.1关闭多路径

systemctl stop multipathd.service
vi /etc/multipath.conf
blacklist {
devnode "^sd[a-z0-9]+"
}
systemctl restart multipathd.service

6.2 缺少restorecon命令支持

执行如下命令安装

apt-get install policycoreutils

6.3安装longhorn时个节点安装nfsutil

sudo apt install nfs-common

6.4一些常用命令

查看所有pod

kubectl --kubeconfig ~/.kube/config get pods --all-namespaces 

 查看命名空间下的所有pod

kubectl -n 命名空间  get pods

 查看当个pod状态

kubectl describe pod pod名称 -n 命名空间  

 查看单pod日志

kubectl  logs -f -n  命名空间  pod名称 --since=1h

 文件拷贝命令

从主机拷贝文件到pod

kubectl cp /主机目录/文件路径 podName:/容器路径/xxx -n 命名空间

从pod拷贝到主机 

kubectl cp podName:容器路径/xxx -n 命名空间 /主机目录

删除pod

 kubectl delete pod pod名称  -n 命名空间

 删除命名空间

kubectl delete namespace 命名空间

查看k3s日志

tail -200f /var/log/syslog | grep k3s

卸载主服务k3s

/usr/local/bin/k3s-uninstall.sh

卸载代理服务k3s

/usr/local/bin/k3s-agent-uninstall.sh

出现mysql数据查询缓慢,调整最大连接数,更换引擎

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

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

相关文章

微信小程序+前后端开发学习材料2-(视图+基本内容+表单组件)

学习来源 视图 1.swiper 滑块视图容器。其中只可放置swiper-item组件&#xff0c;否则会导致未定义的行为。 显示面板指示点indicator-dots 基础内容 1.icon 图标组件 实例演示 2.progress 进度条。组件属性的长度单位默认为px&#xff0c;咱用rpx。 实例演示 这…

【运维】WSL1如何升级到WSL2

升级WSL1到WSL2&#xff1a;简便快捷版 在这篇博客中&#xff0c;我们将研究如何通过一种更简便的方式&#xff0c;将WSL1迅速升级到WSL2&#xff0c;避免官方文档的繁冗步骤。如果你觉得官方方法太过冗长&#xff0c;那么这里提供的步骤可能更适合你。 官网的办法是&#xf…

oracle 19c容器数据库data dump数据泵传输数据(4)---网络传输

Transporting a Database Over the Network: Example 这个的方式导入可以不需要传输dmp文件&#xff0c;我原本是想从11g导入到pdb2的&#xff0c;但是因为版本的原因&#xff0c;就直接实验从pdb1导入到pdb2吧。 这种方式和前面完全传输的方式类似&#xff0c;不需要事先在目…

如何解决分支机构无法连入总部采购管理系统的难题

案例背景&#xff1a; 某企业业务规模不断壮大&#xff0c;内部采购流程越发复杂&#xff0c;供应商资质情况各异难以管理&#xff0c;为提高内部采购效率和采购品质&#xff0c;优化供应链管理&#xff0c;确保采购环节公正透明可溯&#xff0c;该企业集中化部署了采购管理系…

k8s 集群搭建的一些坑

k8s集群部署的时候会遇到很多的坑&#xff0c;即使看网上的文档也可能遇到各种的坑。 安装准备 1、虚拟机两台&#xff08;ip按自己的网络环境相应配置&#xff09;(master/node) 192.168.100.215 k8s-master 192.168.100.216 k8s-node1 2、关闭防火墙(master/node) system…

AJAX入门到实战,学习前端框架前必会的(ajax+node.js+webpack+git)(八)

16.什么是webpack? 压缩&#xff1a;把代码文件的体积缩小 整合&#xff1a;把多个CSS文件、JS文件整合成一个&#xff0c;减少用户浏览器的http请求次数&#xff0c;从而让用户更快访问我们的网页 转译&#xff1a;less、sass转换成css&#xff0c;高版本js降级处理等 时间…

LUA 对象转excel

1. 首先把LUA 转成JSON 对象 因为是excel, 所以第一层要是数组&#xff0c;否则没有什么意义&#xff0c;即lua对象要是一个数组比较合理。这里使用开源的json.lua&#xff0c; 但是开源的&#xff0c;对于数字作下标的&#xff0c;或者是一个数组里&#xff0c;不同类型的key…

Tomcat启动后无法访问主页

1、确认JDK和Tomcat环境变量配置没有问题后&#xff0c;startup启动Tomcat 2、输入localhost:8080显示无法访问 3、找到Tomcat安装目录下的conf目录 4、修改下面两个地方&#xff0c;将port改成8081 <Connector port"8081" protocol"HTTP/1.1"connect…

vue3 实现简单计数器示例——一个html文件展示vue3的效果

目的&#xff1a;作为一个新手开发&#xff0c;我想使用 Vue 3 将代码封装在 HTML 文件中时&#xff0c;进行界面打开展示。 一、vue计数示例 学了一个简单计数器界面展示&#xff0c;代码如下&#xff1a; <!DOCTYPE html> <html lang"en"><head&…

会话层协议

在OSI模型中&#xff0c;会话层&#xff08;Session Layer&#xff09;主要负责建立、管理和终止会话&#xff0c;提供数据交换的服务。然而&#xff0c;相对于物理层、数据链路层、网络层、运输层等层&#xff0c;会话层的协议并没有像其他层次那样具有明确的、广泛应用的协议…

PXE和kickstart无人值守安装

PXE高效批量网络装机 引言 1.系统装机的引导方式 启动 操作 系统 1.硬盘 2.光驱&#xff08;u盘&#xff09; 3.网络启动 pxe 重装系统&#xff1f; 在已有操作系统 新到货了一台服务器&#xff0c; 装操作系统 系统镜像 u盘 光盘 pe&#xff1a; 小型的 操作系统 在操…

SeaTunnel 、DataX 、Sqoop、Flume、Flink CDC 对比

对比 对比项Apache SeaTunnelDataXApache SqoopApache FlumeFlink CDC部署难度容易容易中等,依赖于 Hadoop 生态系统容易中等,依赖于 Hadoop 生态系统运行模式分布式,也支持单机单机本身不是分布式框架,依赖 Hadoop MR 实现分布式分布式,也支持单机分布式,也支持单机健壮…

rust跟我学七:获取外网IP地址

图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info是怎么获取到本机的外网IP地址。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址:[…

渗透测试(13)- 费解的三次握手和四次挥手

上一篇文章通过wireshark抓包工具简单了解了TCP/IP协议的五层工作模型&#xff0c;其中传输层我们已经知道主要是用来增加端口信息的。传输层主要有两种协议&#xff0c;一种是面向连接的TCP协议&#xff0c;一种是无连接的UDP协议&#xff0c;无连接的UDP协议比较好理解&#…

智能小程序相关名词解释(汇总)

小程序 ID 小程序 ID 是智能小程序分配给开发者的应用 ID&#xff0c;是应用的唯一标示&#xff0c;只有应用创建后才可以获取。创建小程序应用后&#xff0c;您可获得小程序应用的小程序 ID。 小程序框架 小程序提供一套简单高效的开发框架&#xff0c;帮助您开发具有原生 …

QT上位机开发(MySql访问)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 网上介绍的关于QT和mysql部分的内容&#xff0c;都是利用Qt自带的mysql库来实现数据读写的。但是事实上来说&#xff0c;即使不用qt带的库&#xf…

利用 ChatGPT 高效搜索:举一反三的思考方式,高效查找解决方案

文章目录 基础思路举一反三Go 语言 Web 框架延伸思考思考结论 本文只是我的一些尝试&#xff0c;基于 ChatGPT 实现系统化快速搜索某编程语言的特定领域相关包或者基于其他语言类推荐落地方案的尝试。 这篇文章中描述的方式不一定是好方式&#xff0c;但应该会有一定的启示作用…

深入剖析 Git 对象底层原理

一、引言 在我们日常使用 Git 时&#xff0c;通常的操作是&#xff1a; 在写完一段代码后&#xff0c;执行 git add命令&#xff0c;将这段代码添加到暂存区中然后再执行 git commit和 git push 命令&#xff0c;将 本地 Git 版本库中的提交同步到服务器中的版本库中 Git 在…

vscode 格式化代码

在 Visual Studio Code 中&#xff0c;你可以使用以下步骤来格式化代码&#xff1a; 打开你的代码文件。选择你要格式化的代码部分或按 CtrlA 来全选。按下 ShiftAltF&#xff0c;这会触发 "格式化文档" 的命令。 如果你的键盘布局没有 "Alt" 键&#xf…

Three.js 学习笔记之模型(学习中1.17更新)

文章目录 模型 几何体 材质模型点模型Points - 用于显示点线模型Line | LineLoop | LineSegments网格模型mesh - 三角形 几何体BufferGeometry缓冲类型几何体BufferGeometry - 没有任何形状的空几何体创建几何体的方式BufferAttribute Types定义顶点法线 geometry.attributes…