Clickhouse集群化(一)k8s集群搭建

环境准备:

vm 17 pro 有些功能必须pro版本才会提供(https://download.csdn.net/download/weixin_40663313/89677277?spm=1001.2014.3001.5501)夸克下载链接

centos 7.9 

docker:1.26 

k8s:1.21.14

1. 创建虚拟机

参考:VM部署CentOS并且设置网络_vmware安装contos设置主机名和网卡信息-CSDN博客

vm 17 pro 注册码 4A4RR-813DK-M81A9-4U35H-06KND

1.1. 创建自定义虚拟机

选择自定义配置

我这里安装的是vm17 直接选择最新的

选择centos系统

设置虚拟机名称和路径

分配cpu

分配内存

选择nat 网络配置后续在修改

选择默认即可

创建新的磁盘 大小按需选择

1.2. 选择镜像

刚创建的时候并未选择镜像 可以在设置中设置镜像位置

1.3. 克隆

vm提供了快速创建相同虚拟机的操作

2. 安装centos

选择iso镜像后 安装centos

选择语言

时间

设置密码(中间会有一些其他设置包括 存储位置 网络等 建议默认就行)有些出现三角形感叹号的是需要我们进去配置并点击完成 可以进去选择默认即可

2.1. 网络设置(DHCP)

cd /etc/sysconfig/network-scripts/

2.2. 手动获取

固定ip 方便远程连接

3. 部署前置准备

vi /etc/hosts

192.168.157.129 master

192.168.157.130 node1

192.168.157.131 node2

3.1. 时间同步

kubernetes要求集群中的节点时间必须精确一致, 这里直接使用chronyd服务从网络同步时间。

# 启动chronyd服务systemctl start chronyd#设置chronyd服务开机自启systemctl enable chronyd# chronyd服务启动稍等几秒钟,就可以使用date命令验证时间了date

3.2. 关闭相关服务

# 1关闭firewalld服务systemctl stop firewalldsystemctl disable firewalld# 2关闭iptables服务systemctl stop iptablessystemctl disable iptables# a. 临时关闭swap,防止 执行 kubeadm 命令爆错。swapoff -a# b. 临时关闭 selinux,减少不必要的配置。setenforce 0

设置网桥信息

cat << EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

3.3. 更换yum源

装的时候遇到了奇葩问题 不发解析host的问题curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"

尝试修改vim /etc/resolv.conf文件 为解决问题

更换yum源

vi /etc/yum.repos.d/CentOS-Base.repo

将这个地方的baseurl注释去掉 链接换成mirrors.aliyun.com

同时把下面的mirrorlist注释掉

更换后执行

yum clean allyum makecache

3.4. 配置ipvs功能

# 1安装ipset和ipvsadmyum install ipset ipvsadmin -y# 2添加需要加载的模块写入脚本文件cat <<EOF > /etc/sysconfig/modules/ipvs.modules#! /bin/bashmodprobe -- ip_vsmodprobe -- ip_vs_rrmodprobe -- ip_vs_wrrmodprobe -- ip_vs_shmodprobe -- nf_conntrack_ipv4EOF# 3为脚本文件添加执行权限chmod +x /etc/sysconfig/modules/ipvs.modules# 4执行脚本文件/bin/bash /etc/sysconfig/modules/ipvs.modules# 5查看对应的模块是否加载成功lsmod | grep -e ip_vs -e nf_conntrack_ipv4

3.5. 重启

4. 安装docker

yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 2查看当前镜像源中支持的docker版本yum list docker-ce --showduplicates# 3安装特定版本的docker-ce# 必须指定--setopt=obsoletes=0,否则yum会自动安装更高版本yum install --setopt=obsoletes=0 docker-ce-20.10.24-3.el7 -y# 4添加一个配置文件# Docker在默认情况下使用的Cgroup Driver为cgroupfs, 而kubernetes推荐使用systemd来代替cgroupfsmkdir /etc/dockercat <<EOF > /etc/docker/daemon.json{"exec-opts": ["native.cgroupdriver=systemd"],"registry-mirrors": ["https://o36meer8.mirror.aliyuncs.com"]}EOF# 5启动dockersystemctl restart dockersystemctl enable docker# 6检查docker状态和版本docker version

5. 安装k8s

​
cat <<EOF > /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=kubernetes-yum-repos-kubernetes-el7-x86_64安装包下载_开源镜像站-阿里云enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOFyum install -y --nogpgcheck kubelet-1.21.14 kubeadm-1.21.14 kubectl-1.21.14​

# 在安装kubernetes集群之前,必须要提前准备好集群需要的镜像,所需镜像可以通过下面命令查看

kubeadm config images list

# 下载镜像 有些镜像需要翻墙 也可以尝试下面方案

部分镜像已导出

镜像icon-default.png?t=N7T8https://pan.quark.cn/s/4c63051ec9ed

# 此镜像在kubernetes的仓库中,由于网络原因,无法连接,下面提供了一种替代方案images=(kube-apiserver:v1.21.14kube-controller-manager:v1.21.14kube-scheduler:v1.21.14kube-proxy:v1.21.14pause:3.4.1etcd:3.4.13-0coredns:1.8.0)for imageName in ${images[@]} ; dodocker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageNamedocker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageNamedocker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$imageNamedone

5.1. 初始化集群

查看安装结果

kubelet --version
kubectl version
kubeadm version

启动 kubelet 服务

systemctl daemon-reload
systemctl start kubelet

下面操作在master节点上进行

# 创建集群

kubeadm init --kubernetes-version=v1.21.5 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --apiserver-advertise-address=192.168.157.129 --image-repository registry.aliyuncs.com/google_containers

(还可以以配置的方式执行)参考云服务器安装k8s和kubesphere踩坑_kubekey拉取镜像失败-CSDN博客

初始化成功注意这两个地方 一个创建必要文件 一个为了后续node加入master

# 创建必要文件mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config
kubeadm join 192.168.157.129:6443 --token 16mn6b.cfcaejq8zyq0j6zt \--discovery-token-ca-cert-hash sha256:d82b289f4f3d4c6342e1b2c012c186ba83dbfc062eadc2982a8519a2b24fcb9b# 如果忘记 kubeadm token create --print-join-command

同时在node1 node2执行join操作

发现已经有node 接下来安装网络插件

5.2. 安装网络插件

​
# 获取fanne1的配置文件wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml如果下载不了 可以用网上找的# 使用配置文件启动fannelkubectl apply -f kube-flannel.yml# 稍等片刻,再次查看集群节点的状态kubectl get nodes​

 如果下载失败 可以使用下面的文件

---
kind: Namespace
apiVersion: v1
metadata:name: kube-flannellabels:pod-security.kubernetes.io/enforce: privileged
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: flannel
rules:- apiGroups:- ""resources:- podsverbs:- get- apiGroups:- ""resources:- nodesverbs:- list- watch- apiGroups:- ""resources:- nodes/statusverbs:- patch
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: flannel
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: flannel
subjects:- kind: ServiceAccountname: flannelnamespace: kube-flannel
---
apiVersion: v1
kind: ServiceAccount
metadata:name: flannelnamespace: kube-flannel
---
kind: ConfigMap
apiVersion: v1
metadata:name: kube-flannel-cfgnamespace: kube-flannellabels:tier: nodeapp: flannel
data:cni-conf.json: |{"name": "cbr0","cniVersion": "0.3.1","plugins": [{"type": "flannel","delegate": {"hairpinMode": true,"isDefaultGateway": true}},{"type": "portmap","capabilities": {"portMappings": true}}]}net-conf.json: |{"Network": "10.244.0.0/16","Backend": {"Type": "vxlan"}}
---
apiVersion: apps/v1
kind: DaemonSet
metadata:name: kube-flannel-dsnamespace: kube-flannellabels:tier: nodeapp: flannel
spec:selector:matchLabels:app: flanneltemplate:metadata:labels:tier: nodeapp: flannelspec:affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/osoperator: Invalues:- linuxhostNetwork: truepriorityClassName: system-node-criticaltolerations:- operator: Existseffect: NoScheduleserviceAccountName: flannelinitContainers:- name: install-cni-plugin#image: flannelcni/flannel-cni-plugin:v1.1.0 for ppc64le and mips64le (dockerhub limitations may apply)image: docker.io/rancher/mirrored-flannelcni-flannel-cni-plugin:v1.1.0command:- cpargs:- -f- /flannel- /opt/cni/bin/flannelvolumeMounts:- name: cni-pluginmountPath: /opt/cni/bin- name: install-cni#image: flannelcni/flannel:v0.20.0 for ppc64le and mips64le (dockerhub limitations may apply)image: docker.io/rancher/mirrored-flannelcni-flannel:v0.20.0command:- cpargs:- -f- /etc/kube-flannel/cni-conf.json- /etc/cni/net.d/10-flannel.conflistvolumeMounts:- name: cnimountPath: /etc/cni/net.d- name: flannel-cfgmountPath: /etc/kube-flannel/containers:- name: kube-flannel#image: flannelcni/flannel:v0.20.0 for ppc64le and mips64le (dockerhub limitations may apply)image: docker.io/rancher/mirrored-flannelcni-flannel:v0.20.0command:- /opt/bin/flanneldargs:- --ip-masq- --kube-subnet-mgrresources:requests:cpu: "100m"memory: "50Mi"limits:cpu: "100m"memory: "50Mi"securityContext:privileged: falsecapabilities:add: ["NET_ADMIN", "NET_RAW"]env:- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespace- name: EVENT_QUEUE_DEPTHvalue: "5000"volumeMounts:- name: runmountPath: /run/flannel- name: flannel-cfgmountPath: /etc/kube-flannel/- name: xtables-lockmountPath: /run/xtables.lockvolumes:- name: runhostPath:path: /run/flannel- name: cni-pluginhostPath:path: /opt/cni/bin- name: cnihostPath:path: /etc/cni/net.d- name: flannel-cfgconfigMap:name: kube-flannel-cfg- name: xtables-lockhostPath:path: /run/xtables.locktype: FileOrCreate

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

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

相关文章

2022 年高教社杯全国大学生数学建模竞赛-C 题 古代玻璃制品的成分分析与鉴别详解+分类模型Python代码源码

前言 简单介绍一下我自己&#xff1a;博主专注建模四年&#xff0c;参与过大大小小数十来次数学建模&#xff0c;理解各类模型原理以及每种模型的建模流程和各类题目分析方法。参与过十余次数学建模大赛&#xff0c;三次美赛获得过二次M奖一次H奖&#xff0c;国赛二等奖。**提…

游戏引擎详解——图片

图片 图片的格式 图片文件格式pngjpg 纹理压缩格式ETC1/2PVRTCASTC 图片的属性 图片属性解释分辨率宽高像素值&#xff08;pt&#xff09;&#xff0c;如&#xff1a;1024*1024位深度用来存储像素颜色的值&#xff0c;如RGBA8888&#xff0c;红黄蓝透明度4个维度每个8bit&…

深度解析HarmonyOS SDK实况窗服务源码,Get不同场景下的多种模板

HarmonyOS SDK实况窗服务&#xff08;Live View Kit&#xff09;作为一个实时呈现应用服务信息变化的小窗口&#xff0c;遍布于设备的各个使用界面&#xff0c;它的魅力在于将复杂的应用场景信息简洁提炼并实时刷新&#xff0c;在不影响当前其他应用操作的情况下&#xff0c;时…

脑波传感与认知计算的深入探讨

随着神经科学和计算机技术的不断发展&#xff0c;脑波传感与认知计算逐渐成为研究的前沿领域。脑波传感技术可以捕捉人类大脑的电活动&#xff0c;从而解读大脑的思维过程和认知状态&#xff1b;而认知计算则通过模拟人类的思维方式来进行信息处理和决策。这两个领域的结合&…

红蓝对抗,你懂得多少?

红蓝对抗&#xff0c;你懂得多少&#xff1f; “HW行动”是国家应对网络安全问题所做的重要布局之一。“HW行动”从2016年开始&#xff0c;随着我国对网络安全的重视&#xff0c;涉及单位不断扩大&#xff0c;越来越多的单位都加入到HW行动中。2024年HW行动就在眼前&#xff0…

【RPC基础知识】

定义 RPC&#xff08;Remote Procedure Call&#xff09; 即远程过程调用&#xff0c;通过名字我们就能看出 RPC 关注的是远程调用而非本地调用。 为什么要 RPC &#xff1f; 因为&#xff0c;两个不同的服务器上的服务提供的方法不在一个内存空间&#xff0c;所以&#xff…

MVC与设计模式理解-lnmp学习之路

一、MVC 前言&#xff1a; MVC是一种应用架构模式&#xff0c;也可以说是一种业务架构或是一种应用设计思想&#xff0c;用于组织业务逻辑并分离代码的。 MVC组成结构是Model-View-Controller&#xff0c;Model是管控数据层&#xff0c;View是管控视图层&#xff0c;Controlle…

基于矢量光场的光学加工技术

欢迎关注GZH《光场视觉》 摘要&#xff1a;作为光的一个基本属性&#xff0c;偏振、振幅和相位提供的自由度对光场调控具有重要作用。具有空间结构偏振态、振幅和相位分布的矢量光场因其具有不同于传统光场的独特性质而被应用于诸多领域。近年来&#xff0c;时空分布特性更加丰…

合宙LuatOS开发板使用手册——Air700EAQ

EVB-Air700EL&700EY 开发板是合宙通信推出的基于 Air700EL&700EY 模组所开发的&#xff0c; 包含电源&#xff0c;SIM 卡&#xff0c;USB&#xff0c;PCB 天线等必要功能的最小硬件系统。 以方便用户在设计前期对 模块进 行性能评估&#xff0c;功能调试&#xff0c;软…

“面试宝典:高频算法题目详解与总结”

干货分享&#xff0c;感谢您的阅读&#xff01; &#xff08;暂存篇---后续会删除&#xff0c;完整版和持续更新见高频面试题基本总结回顾&#xff08;含笔试高频算法整理&#xff09;&#xff09; 备注&#xff1a;引用请标注出处&#xff0c;同时存在的问题请在相关博客留言…

JavaScript 的进阶概念补充:V8 引擎的垃圾回收机制

JavaScript 的进阶概念补充&#xff1a;V8 引擎的垃圾回收机制 JavaScript 的垃圾回收机制在各大浏览器中实现有所不同&#xff0c;其中 V8 引擎&#xff08;Google Chrome 和 Node.js 中使用的 JavaScript 引擎&#xff09;尤为知名。理解 V8 引擎的垃圾回收机制&#xff0c;…

Linux_kernel简介01

--------------------------------------------------------- 力扣专题 --------------------------------------------------------- 一、嵌入式开发 1、ARM的历史 ARM原本含义(Acom RISC Machine)后来Acron公司独立出了ARM部门&#xff0c;成立了ARM公司&#xff08;Advan…

消费电子钛时代到来!天工股份抢占发展高地,业绩爆发式增长、前景广阔

消费电子“钛时代”正加速到来。 27日凌晨&#xff0c;苹果正式定档iPhone 16系列新品的发布会日期。据悉&#xff0c;本次iPhone 16 Pro系列将全系标配钛金属中框&#xff0c;继续沿用并升级此前在iPhone 15 Pro系列上应用的钛金属材质。 回看去年9月秋季新品发布会&#xf…

VIVADO自定义 IP封装

简介 本章节主要针对VIVAO 2020.2版本做IP自定义封装&#xff0c;其中涉及到IP寄存器读写配置&#xff0c;自定义接口封装等介绍。 IP封装 IP标准自定义步骤一般有创建工程&#xff0c;封装IP&#xff0c;自定义内容&#xff0c;添加自定义库这4个步骤&#xff0c;下面…

音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息

通过FFprobe命令可以显示WAV音频文件每个packet&#xff08;也称为数据包或多媒体包&#xff09;的信息&#xff1a; ffprobe -of json -show_packets XXX.wav 输出如下&#xff1a; 其中&#xff1a; 1.codec_type&#xff1a;packet类型&#xff0c;表示该路流是视频还是音…

《机器学习》 基于GANs构建数字图像生成器

文章目录 引言生成对抗网络的基本原理生成对抗网络的数学表达生成对抗网络的应用生成对抗网络的挑战与优化生成对抗网络的实现示例结论&#xff1a;机器学习和ai技术的出现成为了C……SD……N 热榜的爹。 使用机器学习技术对热榜文章进行分析 引言 生成对抗网络&#xff08;Ge…

macos USB外接键盘ctrl键绑定方法 解决外接USB键盘与mac键盘不一致问题

mac电脑外接USB键盘后我们需要修改一下 ctrl键的绑定后才符合我们的使用习惯,因为标准USB键盘和mac键盘上面的ctrl键是不一样的, mac上面的 command 键 对应我们USB键盘上面的 ctrl 键. 修改方法: 偏好设置 --> 键盘 点击修饰键 后 选择键盘里面选择 USB键盘 ,然后调换…

鸿蒙( Beta5.0版)开发实战:自定义TabBar页签

介绍 本示例主要介绍了TabBar中间页面如何实现有一圈圆弧外轮廓以及TabBar页签被点击之后会改变图标显示&#xff0c;并有一小段动画效果。 效果图预览 使用说明&#xff1a; 依次点击tabBar页面&#xff0c;除了社区图标之外&#xff0c;其它图标往上移动一小段距离。 实现…

【SpringCloud应用框架】GateWay网关

Spring Cloud Alibaba 之初识GateWay网关 文章目录 一、网关介绍二、网关对比三、GateWay基本概念&#xff1a;执行流程&#xff1a; 总结 一、网关介绍 在微服务架构中&#xff0c;一个系统会被拆分为多个微服务。如果没有网关存在&#xff0c;我们只能在客户端记录梅哥为服务…

第138天:内网安全-WinLinux内存离线读取Hashcat 破解RDPSSH 存储提取

案例一&#xff1a; 明文获取-Windows-内存读取&离线读取&RDP保存&Hashcat windows实验背景 微软为了防止明文密码泄露发布了补丁 KB2871997 &#xff0c;关闭了 Wdigest 功能。当系统为 win10 或 2012R2 以上时&#xff0c;默认在内存缓存中禁止保存明文密…