k8s集群外挂etcd集群存储数据

k8s快速部署,附带脚本 将yml文件放在文章中是不想遇到下载不下来的情况,可跳过yml文件内容,文章本身内容不多。本章内容可供学习及简单了解k8s集群部署及使用。参考文档里有些地方是有坑的。使用本章整理内容可完整部署出两个版本。[k8s1.18.8集群][metrics server][kuboard] [k8s1.26.1集群][metrics server][kuboard v3] 阅读详情

1.前言

k8s集群可以选用外挂etcd集群的方式存储数据,也可以选择使用etcd容器化搭建集群的方式存储数据,因为在k8s高可用集群搭建中我使用了容器化的etcd集群,现在来说一下使用外挂etcd集群的方式

2.主机信息

主机名称ipportservice
k8s-master0110.1.60.1192379、2380etcd
k8s-master0210.1.60.1202379、2380etcd
k8s-master0310.1.60.1212379、2380etcd

3.搭建etcd集群

3.1安装etcd

yum -y install etcd

3.2编辑etcd配置文件

vi /etc/etcd/etcd.conf

#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://10.1.60.119:2380"
ETCD_LISTEN_CLIENT_URLS="http://10.1.60.119:2379,http://127.0.0.1:2379"
ETCD_NAME="k8s-master01"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.1.60.119:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.1.60.119:2379"
ETCD_INITIAL_CLUSTER="k8s-master01=http://10.1.60.119:2380,k8s-master02=http://10.1.60.120:2380,k8s-master03=http://10.1.60.121:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

这是其中一台主机的配置,其余主机只需根据这个配置修改其中的ip地址和etcd_name即可 

3.3启动etcd服务并配置开机启动

systemctl start etcd && systemctl enable etcd

3.4查看etcd集群状态

一定要把所有节点的的etcd集群都启动后在查看

etcdctl member list

etcdctl cluster-health

4.k8s集群搭建

基础环境配置参考:kubeadm部署k8s 1.26.0版本高可用集群_Apex Predator的博客-优快云博客

前面的搭建与上面文章中的一样,只是多了etcd集群的部署,直到k8s集群初始化才有所不同

4.1k8s集群初始化

 导出初始化配置文件

kubeadm config print init-defaults > kubeadm.yaml

编辑配置文件

vi kubeadm.yaml

apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 10.1.60.119   #配置控制节点
  bindPort: 6443   #控制节点默认端口
nodeRegistration:
  criSocket: unix:///var/run/cri-dockerd.sock   #配置使用cri-docker
  imagePullPolicy: IfNotPresent
  name: k8s-master01   #定义节点名称
  taints: null
---
apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns: {}
imageRepository: registry.aliyuncs.com/google_containers  #配置镜像源地址为阿里云地址
kind: ClusterConfiguration
kubernetesVersion: 1.26.0                #配置k8s版本
controlPlaneEndpoint: 10.1.60.124:16443   #配置vip地址
etcd:                      #配置etcd集群地址
  external:
    endpoints:
      - http://10.1.60.119:2379
      - http://10.1.60.120:2379
      - http://10.1.60.121:2379
networking:
  dnsDomain: cluster.local
  podSubnet: 10.244.0.0/16       #配置pod地址段
  serviceSubnet: 10.96.0.0/12    #配置service地址段
scheduler: {}

使用初始化配置文件初始化k8s集群

kubeadm init --config  kubeadm.yaml  --upload-certs

初始化成功后按照输出的提示执行命令

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

export KUBECONFIG=/etc/kubernetes/admin.conf

执行完后查看节点状态

kubectl get nodes

4.2将其余控制节点加入集群

在120 master节点上新建以下目录

mkdir -p /etc/kubernetes/pki/etcd/

在119 master节点上执行以下命令拷贝证书到120 master节点上

scp /etc/kubernetes/pki/ca.crt root@10.1.60.120:/etc/kubernetes/pki/

scp /etc/kubernetes/pki/ca.key root@10.1.60.120:/etc/kubernetes/pki/

scp /etc/kubernetes/pki/sa.key root@10.1.60.120:/etc/kubernetes/pki/

scp /etc/kubernetes/pki/sa.pub root@10.1.60.120:/etc/kubernetes/pki/

scp /etc/kubernetes/pki/front-proxy-ca.crt root@10.1.60.120:/etc/kubernetes/pki/

scp /etc/kubernetes/pki/front-proxy-ca.key root@10.1.60.120:/etc/kubernetes/pki/

这里和内置etcd集群的区别就是不用拷贝etcd的证书

在119 master查看加入集群的token

kubeadm token create --print-join-command

在120 master执行以上输出的token并增加一些参数加入集群

kubeadm join 10.1.60.124:16443 --token zj1hy1.ufpwaj7wxhymdw3a --discovery-token-ca-cert-hash sha256:9636d912ddb2a9b1bdae085906c11f6839bcf060f8b9924132f6d82b8aaefecd --control-plane --cri-socket unix:///var/run/cri-dockerd.sock

执行加入集群后的目录创建(执行完上一步的命令后会输出提示)

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

export KUBECONFIG=/etc/kubernetes/admin.conf

执行以下命令查看是否加入成功

kubectl get nodes

剩下的121 master节点重复以上的步骤加入集群即可

4.3将工作节点加入集群

在任意master节点上执行以下命令查看加入集群的token

kubeadm token create --print-join-command

执行master节点生成的token并增加一些参数加入集群

kubeadm join 10.1.60.124:16443 --token zj1hy1.ufpwaj7wxhymdw3a --discovery-token-ca-cert-hash sha256:9636d912ddb2a9b1bdae085906c11f6839bcf060f8b9924132f6d82b8aaefecd  --cri-socket unix:///var/run/cri-dockerd.sock

可以看到控制节点加入集群和工作节点加入集群的区别就是有无--control-plane参数

在任意master节点上执行以下命令查看集群信息

kubectl get nodes

每个node节点都执行以上步骤即可加入集群
 

4.4安装网络插件

下载flannel的yaml文件

wget https://github.com/coreos/flannel/raw/master/Documentation/kube-flannel.yml

使用此yaml文件

kubectl create -f kube-flannel.yml

等flannel容器都运行,可通过以下命令查看

kubectl get pods -n kube-flannel

flannel都启动后查看集群状态就可以看到都已经是ready了

kubectl get nodes
 

至此k8s高可用集群搭建完成

kubeadm部署k8s1.27.2版本高可用集群(外部etcd集群带TLS认证) kubeadm1部署k8s1.27.2版本高可用集群(外部etcd集群带TLS认证) 阅读详情

相关推荐

k8s中部署etcd集群

在k8s中创建etcd集群

wm6752062的专栏 5143

kubernetes 1.26.1 Etcd部署(外接)保姆级教程

保姆级部署文档

不忘初心,方得始终 3741

K8S:K8S自动化运维容器化(Docker)集群程序

本文主要介绍了什么是K8S以及为什么在容器集群中药使用K8S管理,K8S管理的优点和解决的问题、讲解了K8S的各种组件、K8S的架构以及K8S的工作流程

云计算之路 5125

k8s 部署外部etcd集群(v3.4.13)

k8s 部署外部etcd集群(v3.4.13)

hedao0515的专栏 3019

SpringAi 通过大模型来实现调用自己的Api

摘要 本文介绍了如何利用Spring AI的Tools机制扩展大模型能力,实现业务系统集成。通过@Tool和@ToolParam注解定义工具方法,将订单查询和关闭功能暴露给大模型调用。关键实现包括:1)使用详细描述标注工具方法和参数;2)在ChatClient中注册工具服务;3)集成对话记忆保持上下文。该方法使AI具备操作业务系统的能力,形成"认知-决策-执行"闭环,大幅提升了模型在实际业务场景中的应用价值。

又要搬砖了 838

Android双目摄像头(RGB+IR)实时预览与人脸活体检测实战指南

本文详细介绍了Android双目摄像头(RGB+IR)实时预览与人脸活体检测的实战指南。通过双摄同步预览、人脸检测与活体判断等技术实现,提升安全认证的准确性和鲁棒性。文章还提供了开发环境搭建、常见问题解决方案及性能优化建议,帮助开发者快速掌握双目摄像头在Android平台的应用。

vulkan6gpu的博客 700

Kubernetes控制平面组件:etcd高可用解决方案

前面已经学习了如何搭建一个高可用的etcd集群,但需要大量的手工操作,生产上是有一些解决方案可以做到 自动化的高可用。本节就来学习2种常用的etcd高可用解决方案

a1369760658的博客 1125

当交警手势遇见边缘计算:轻量化手势识别系统的落地挑战

本文探讨了边缘计算环境下交警手势识别系统的技术挑战与解决方案,结合OpenPose和LSTM算法优化,实现轻量化部署。通过深度可分离卷积、量化感知训练等技术创新,在算力受限的边缘设备上达到高效实时识别,为智能交通系统提供可靠支持。

weixin_29079671的博客 637

kubernetes(k8s)容器集群管理系统

kubernetes 文章目录kubernetes什么是k8s?为什么需要K8S?多机编排管理容器k8s的特性Kubernetes集群架构与组件核心组件Master组件Kube-apiserverKube-controller-managerKube-scheduler配置存储中心Node组件Kube-Proxydocker或rocketdwf1小结Kubernetes核心概念PodPod控制器LabelLabel 选择器(Label selector)serviceIngressNameNamespace

weixin_44938203的博客 4094

K8s私有仓库拉取镜像报错解决:x509 certificate signed by unknown authority

在Kubernetes环境中使用自签名证书的私有Harbor镜像仓库时,常会遇到证书验证失败的问题。本文将详细讲解如何解决这个常见的证书问题。Kubernetes版本:1.28.2容器运行时:containerd 1.6.20私有仓库:Harbor(使用自签名证书)(超简单搭建私有仓库Harbor-亲测无坑解决K8s私有仓库证书问题的关键在于正确配置容器运行时(本例中是containerd)信任私有仓库的证书。

lzz的博客 2142

【深度学习】普通卷积、DWconv(逐深度卷积)与PWconv(逐点卷积)以及DSconv(深度可分离卷积)

深度可分离卷积(Depthwise Separable Convolution)通过将常规卷积分解为逐通道卷积(Depthwise)和逐点卷积(Pointwise)两步,显著减少了参数量和计算成本。常规卷积同时提取空间和通道特征,而深度可分离卷积先对每个通道单独进行空间卷积,再用1×1卷积调整通道数。以输入3通道、输出4通道的64×64图像为例,常规卷积需108个参数,而深度可分离卷积仅需39个参数,减少了约2/3。这种结构在轻量级网络(如MobileNet)中广泛应用,可在保持性能的同时降低计算资源需求。

猫天意的博客 4067

K8S简介

1、K8S 是什么? K8S 的全称为 Kubernetes 作用: 用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。 可以理解成 K8S 是负责自动化运维管理多个容器化程序(比如 Docker)的集群,是一个生态极其丰富的容器编排框架工具。 由来: K8S由google的Borg系统(博格系统,google内部使用的大规模容器编排工具)作为原型,后经GO语言延用Borg的思路重写并捐献给CNCF基金会开源。 含义: 词根源于希腊语的 舵手、飞行员 官网: h

m0_65299341的博客 1959

保姆级教程:用MATLAB搞定双目相机标定,从导入图片到参数解读全流程

本文提供了一份详细的MATLAB双目相机标定全流程指南,涵盖从图片准备到参数解读的每个环节。重点讲解了棋盘格选择、拍摄技巧、MATLAB工具箱设置及参数优化,帮助读者避免常见错误并提升标定精度。特别适合机器人导航、三维重建等领域的开发者。

weixin_33737134的博客 429

【云原生之K8S】Kubernetes的基础概念

K8S是负责自动化运维管理多个容器化程序(比如Docker)的集群,是一个生态极其丰富的容器编排框架工具

小杨博客 学习交流 1005

ArcGIS Pro中如何批量替换数据源

不知您是否遇到过下面情况:ArcGIS Pro的Map/Scene中所引用的数据源被移动或重命名了,导致Map/Scene中找不到之前的数据,出现红色叹号;已有一个Map模板文件,图层的样式符号都是设置好的,想批量设置成另外一个数据源,复用该模板文件中的样式符号。 如果您在ArcGIS Pro的使用过程中遇到了上面情况,那么可以参考本篇文章,本文以图层存储在同一GDB中为例介绍。 情况一:Map中已有图层的数据源被移动了 原始Map长这样: 当数据源位置改变之后,显示找不到数据源的红色叹号: 这时如果右

xinying180的博客 7949

【Burp入门第二篇】Chrome配置BurpSuite代理教程

1、配置Burp代理为127.0.0.1:80802、扩展商店添加插件switchyomega,修改服务器和端口为下图:3、打开代理,选择刚才添加的代理

等风来 8368

【云原生Kubernetes系列第一篇】深入理解容器集群管理系统Kubernetes(k8s)原理

单机容器编排容器集群编排应用编排ansiblekubernetes的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。目的是实现资源管理的自动化,自我修复一旦某一个容器崩溃,能够在1秒中左右迅速启动新的容器弹性伸缩可以根据需要,自动对集群中正在运行的容器数量进行调整服务发现服务可以通过自动发现的形式找到它所依赖的服务负载均衡如果一个服务起动了多个容器,能够自动实现请求的负载均衡版本回退Kubernetes核心组件组件名称作用etcd。...

weixin_59663288的博客 1992

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Kubernetes(K8s)的基础概念

简单介绍了Kubernetes(K8s)的基础概念,包括其作用、特性、集群架构;详细介绍了各核心组件的作用;总结Kubernetes(K8s)的工作流程,便于理解记忆;详细展开介绍了Kubernetes(K8s)的各核心概念;简要介绍三种常见的安装部署方式。

MONGJUK的博客 1504

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

你的薪资的高低取决你对容器集群管理系统Kubernetes(K8S)的理解程度

Kubernetes(K8S)的基础概念一、Kubernetes介绍1.1 什么是Kubernetes?1.2 为什么需要K8S?二、K8S 的特性三、Kubernetes 集群架构与组件四、Kubernetes的核心组件4.1 Master 组件1)Kube-apiserver2)Kube-controller-manager3)Kube-scheduler4.2 配置存储中心 — etcd4.3 Node组件1)Kubelet2) Kube-proxy3)docker 或者 rocket五、Kuber.

码海小虾米_的博客 1016

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Kubernetes——初识k8s(1)

k8s基本概念及各个组件作用

橘子的博客 1114

Kubernetes(k8s)的基础概念

Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。 Google 在 2014 年开源了 Kubernetes 项目。 Kubernetes 建立在Google 大规模运行生产工作负载十几年经验的基础上, 结合了社区中最优秀的想法和

sukapulai的博客 2455

K8S:K8S自动化运维容器Docker集群

本文介绍了Kubernetes的概念,为什么要使用K8S以及它的作用及功能; K8s的不同的特性的相关介绍,K8S的集群架构介绍、核心组件的具体作用、功能,架构的工作流程及架构原理,相关标签的介绍等

Zhang110_的博客 1590

K8s设计架构与核心原理详解

Kubernetes设计架构与核心原理详解

qq_49096347的博客 1642

Kubernetes概述

目录 一、Kubernetes概述 1、K8S是什么? 作用 由来 含义 证书 版本 2、为什么要用K8S? 3、K8S解决了裸跑docker的若干痛点: 4、k8s的特性 弹性伸缩 自我修复 服务发现和负载均衡 自动发布(默认滚动发布模式)和回滚 集中化配置管理和密钥管理 存储编排,支持外挂存储并对外挂存储资源进行编排 任务批处理运行 二、Kubernetes集群架构与组件 核心组件 1、Master组件 Kube-apiserver kube-controll

weixin_47062656的博客 1517

【云原生之k8s】kubernetes原理

Kubernetes的缩写为:K8S,这个缩写是因为k和s之间有八个字符的关系。 Kubernetes是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。Kubernetes拥有一个庞大且快速增长的生态系统。Kubernetesd的服务、支持和工具广泛可用。...

qq_45088125的博客 1430
上一篇: k8s部署dashboard
下一篇: k8s 弹性伸缩的使用
Apex   Predator
博客等级 码龄6年 9371粉丝 289原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值