在K8S上面搭建一主两备openGauss

news/2024/5/25 10:10:43/文章来源:https://blog.csdn.net/renxyz/article/details/136615917

在 K8S 上面搭建一主两备 openGauss

初始化环境(以下操作需在 master 和 node 节点执行)

IPHostnameRole
...k8smastermaster
...61k8snode01node
关闭firewalld
systemctl stop firewalld
systemctl disable firewalld

1. 更新 docker

rpm -qa|grep dockeryum remove dockercurl -fsSL https://get.docker.com/ | shsystemctl start dockersystemctl enable docker

2. 准备 kubernetes 源

vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgyum install -y kubeadm kubectl etcd

3. 查看 kubeadm 所需镜像名字

[root@ecs-66cc dockerimages]# kubeadm config images listk8s.gcr.io/kube-apiserver:v1.21.1
k8s.gcr.io/kube-controller-manager:v1.21.1
k8s.gcr.io/kube-scheduler:v1.21.1
k8s.gcr.io/kube-proxy:v1.21.1
k8s.gcr.io/pause:3.4.1
k8s.gcr.io/etcd:3.4.13-0
k8s.gcr.io/coredns/coredns:v1.8.0

4. 安装 K8S 所需镜像

docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.21.1
docker pull registry.aliyuncs.com/google_containers/kube-controller-manager:v1.21.1
docker pull registry.aliyuncs.com/google_containers/kube-scheduler:v1.21.1
docker pull registry.aliyuncs.com/google_containers/kube-proxy:v1.21.1
docker pull registry.aliyuncs.com/google_containers/pause:3.4.1
docker pull registry.aliyuncs.com/google_containers/etcd:3.4.13-0
docker pull coredns/coredns:1.8.0

5.修改 docker Tag 使其与 kubeadm 所需匹配

  • 用国内源下载镜像
docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.21.1 k8s.gcr.io/kube-apiserver:v1.21.1
docker tag registry.aliyuncs.com/google_containers/kube-controller-manager:v1.21.1 k8s.gcr.io/kube-controller-manager:v1.21.1
docker tag registry.aliyuncs.com/google_containers/kube-scheduler:v1.21.1 k8s.gcr.io/kube-scheduler:v1.21.1
docker tag registry.aliyuncs.com/google_containers/kube-proxy:v1.21.1 k8s.gcr.io/kube-proxy:v1.21.1
docker tag registry.aliyuncs.com/google_containers/pause:3.4.1 k8s.gcr.io/pause:3.4.1
docker tag registry.aliyuncs.com/google_containers/etcd:3.4.13-0 k8s.gcr.io/etcd:3.4.13-0
docker tag docker.io/coredns/coredns:1.8.0 k8s.gcr.io/coredns/coredns:v1.8.0
  • 删除无效镜像
docker rmi registry.aliyuncs.com/google_containers/kube-apiserver:v1.21.1
docker rmi registry.aliyuncs.com/google_containers/kube-controller-manager:v1.21.1
docker rmi registry.aliyuncs.com/google_containers/kube-scheduler:v1.21.1
docker rmi registry.aliyuncs.com/google_containers/kube-proxy:v1.21.1
docker rmi registry.aliyuncs.com/google_containers/pause:3.4.1
docker rmi registry.aliyuncs.com/google_containers/etcd:3.4.13-0
docker rmi coredns/coredns:1.8.0

6.编写 K8S 初始化配置&&初始化(在 master 节点执行)

kubeadm.yaml

apiVersion: kubeadm.k8s.io/v1beta2
clusterName: kubernetes
kind: ClusterConfiguration
kubernetesVersion: v1.21.1
controllerManager:extraArgs:horizontal-pod-autoscaler-use-rest-clients: "true"horizontal-pod-autoscaler-sync-period: "10s"node-monitor-grace-period: "10s"
apiServer:extraArgs:runtime-config: "api/all=true"

拷贝配置文件至 kubernetes 并初始化时指定。

cp kubeadm.yaml /etc/kubernetes/manifests/

kubeadm init --config kubeadm.yaml

成功后保留如下信息,后面会使用到:

kubeadm join ***.***.***.***:6443 --token ru2883.u4rhwkx5oqrol9at \--discovery-token-ca-cert-hash sha256:f2dbe7ce49b322e8145b6e9b4303e56468ad1352daabecb797f7bd161a64e018

初始化

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

安装网络插件

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

7. Node 节点 join

Node 节点执行完安装后无需初始化,执行kubeadm join命令加入主节点

kubeadm join ***.***.***.***:6443 --token ru2883.u4rhwkx5oqrol9at \--discovery-token-ca-cert-hash sha256:f2dbe7ce49b322e8145b6e9b4303e56468ad1352daabecb797f7bd161a64e018

8. 导入镜像(master 和 node 节点)

docker load < opengauss.tar.gz

9. 创建 service(svc)(master 节点)

给 pod 创建对应的 svc:kubectl create -f opengauss-svc.yaml

apiVersion: v1
kind: Service
metadata:name: opengauss-service-1
spec:ports:- port: 5432protocol: TCPtargetPort: 5432name: gsql- port: 5434protocol: TCPtargetPort: 5434name: localport- port: 2380protocol: TCPtargetPort: 2380name: etcd1-service- port: 2379protocol: TCPtargetPort: 2379name: etcd1-localselector:app: opengauss-1clusterIP: None---apiVersion: v1
kind: Service
metadata:name: opengauss-service-2
spec:ports:- port: 5432protocol: TCPtargetPort: 5432name: gsql- port: 5434protocol: TCPtargetPort: 5434name: localport- port: 2380protocol: TCPtargetPort: 2380name: etcd1-service- port: 2379protocol: TCPtargetPort: 2379name: etcd1-localselector:app: opengauss-2clusterIP: None---apiVersion: v1
kind: Service
metadata:name: opengauss-service-3
spec:ports:- port: 5432protocol: TCPtargetPort: 5432name: gsql- port: 5434protocol: TCPtargetPort: 5434name: localport- port: 2380protocol: TCPtargetPort: 2380name: etcd1-service- port: 2379protocol: TCPtargetPort: 2379name: etcd1-localselector:app: opengauss-3clusterIP: None

10.创建 pod(master 节点)

创建 openGauss 主备 pod:kubectl create -f opengauss-pod.yaml

apiVersion: v1
kind: Pod
metadata:name: opengauss-1labels:app: opengauss-1
spec:restartPolicy: Nevercontainers:- name: opengauss-1image: opengauss:1.0.5imagePullPolicy: NeversecurityContext:runAsUser: 0volumeMounts:- mountPath: /var/lib/opengauss/data/name: openGauss-volumeports:- containerPort: 5432name: opengaussenv:- name: HOST_NAMEvalue: opengauss-1- name: HOST_IPvalueFrom:fieldRef:fieldPath: status.podIP- name: PEER_IPSvalue: opengauss-service-2,opengauss-service-3- name: PEER_HOST_NAMESvalue: opengauss-2,opengauss-3- name: PORTvalue: "5432"- name: GS_PASSWORDvalue: "Test@56789"- name: SERVER_MODEvalue: primary- name: db_configvalue:volumes:- name: openGauss-volumehostPath:path: /data/opengauss-1/type: DirectoryOrCreate---apiVersion: v1
kind: Pod
metadata:name: opengauss-2labels:app: opengauss-2
spec:restartPolicy: Nevercontainers:- name: opengauss-2image: opengauss:1.0.5imagePullPolicy: NeversecurityContext:runAsUser: 0volumeMounts:- mountPath: /var/lib/opengauss/data/name: openGauss-volumeports:- containerPort: 5432name: opengaussenv:- name: HOST_NAMEvalue: opengauss-2- name: HOST_IPvalueFrom:fieldRef:fieldPath: status.podIP- name: PEER_IPSvalue: opengauss-service-1,opengauss-service-3- name: PEER_HOST_NAMESvalue: opengauss-1,opengauss-3- name: PORTvalue: "5432"- name: GS_PASSWORDvalue: "Test@56789"- name: SERVER_MODEvalue: standby- name: db_configvalue:volumes:- name: openGauss-volumehostPath:path: /data/opengauss-2/type: DirectoryOrCreate---apiVersion: v1
kind: Pod
metadata:name: opengauss-3labels:app: opengauss-3
spec:restartPolicy: Nevercontainers:- name: opengauss-3image: opengauss:1.0.5imagePullPolicy: NeversecurityContext:runAsUser: 0volumeMounts:- mountPath: /var/lib/opengauss/data/name: openGauss-volumeports:- containerPort: 5432name: opengaussenv:- name: HOST_NAMEvalue: opengauss-3- name: HOST_IPvalueFrom:fieldRef:fieldPath: status.podIP- name: PEER_IPSvalue: opengauss-service-1,opengauss-service-2- name: PEER_HOST_NAMESvalue: opengauss-1,opengauss-2- name: PORTvalue: "5432"- name: GS_PASSWORDvalue: "Test@56789"- name: SERVER_MODEvalue: standby- name: db_configvalue:volumes:- name: openGauss-volumehostPath:path: /data/opengauss-3/type: DirectoryOrCreate

11. 测试数据库(master 节点)

1.进入数据库主节点:kubectl exec -it opengauss-1 -- /bin/bash
2.切换用户:su omm
3.进入数据库:gsql

12. 常用命令

所有命令在 master 节点执行

查看集群节点:kubectl get node
查看集群pod:kubectl get pod --all-namespaces
查看集群服务:kubectl get svc --all-namespaces
进入容器:kubectl exec -it 容器名(单个容器的话为pod名) -n opengauss -- /bin/bash
查看pod/svc详情:kubectl describe pod/svc pod/svc名称 -n pod/svc的namespaces
查看日志信息:kubectl logs pod pod名称 -n pod的namespaces

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

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

相关文章

七、软考-系统架构设计师笔记-数据库设计基础知识

1、数据库基础概念 数据库基本概念 数据(Data)数据库(Database)数据库管理系统(DBMS)数据库系统(DBS) 1.数据(Data) 是数据库中存储的基本对象&#xff0c;是描述事物的符号记录。 数据的种类&#xff1a; 文本、图形、图像、音频、视频等。 2.数据库(Database, DB) 数据库…

Linux:kubernetes(k8s)Deployment的操作(13)

创建deployment 命令 kubectl create deploy nginx-deploy --imagenginx:1.7.9 再去使用以下命令分别查询 ubectl get deploy kubectl get replicaset kubectl get pod 他是一个层层嵌套的一个关系 首先是创建了一个 deploy 里面包含着replicaset replicaset里面含有…

python爬虫 Appium+mitmdump 京东商品

爬虫系列&#xff1a;http://t.csdnimg.cn/WfCSx 前言 我们知道通过Charles进行抓包可以发现其参数相当复杂&#xff0c;Form 表单有很多加密参数。如果我们只用 Charles 探测到这个接口链接和参数&#xff0c;还是无法直接构造请求的参数&#xff0c;构造的过程涉及一些加密…

Linux搭建我的世界(MC)整合包服务器,All the Mods 9(ATM9)整合包开服教程

Linux使用MCSM面板搭建我的世界(Minecraft)整合包服务器&#xff0c;MC开服教程&#xff0c;All the Mods 9(ATM9)整合包搭建服务器的教程。 本教程使用Docker来运行mc服&#xff0c;可以方便切换不同Java版本&#xff0c;方便安装多个mc服版本。 视频教程&#xff1a;https:…

Linux下的第一个C++小程序——进度条

一、进度条小程序 1.行缓存区 printf函数的输出&#xff0c;会先进入缓存区&#xff0c;而Linux下的缓存区刷新机制是按行刷新&#xff08;根据不同系统机制不同&#xff09;&#xff0c;例如用printf函数去调试时&#xff0c;可以看到如果printf语句中不带换行&#xff0c;则…

lspci详解

lspci的作用 lspci是一个Linux命令&#xff0c;用于列出系统中的PCI总线设备信息。PCI&#xff08;Peripheral Component Interconnect&#xff09;是一种常见的计算机总线标准&#xff0c;用于连接各种外部设备&#xff08;如网卡、显卡、声卡等&#xff09;到计算机主板上。…

嵌入式3-14

1、整理思维导图 2、重写链表的代码 3、实现链表&#xff0c;按值查找返回位置的功能&#xff0c;按位置查找返回值&#xff0c;释放单链表&#xff0c;链表逆置 node_p create_link_list()//创建头结点 { node_p p(node_p)malloc(sizeof(node)); if(pNULL) { …

巨控GRM560远程模块即将上市

在自动化和工业控制领域&#xff0c;通信模块的作用至关重要。它们是实现设备间通信&#xff0c;以及与上位系统交换数据的桥梁。近年来&#xff0c;随着工业4.0的不断推进&#xff0c;对通信模块的要求也越来越高&#xff0c;不仅需要高效稳定的通信能力&#xff0c;还需要兼容…

【SpringBoot3】整合SpringMVC

文章目录 一、实现过程1.1 创建程序1.2 引入依赖1.3 启动类1.4 Controller 二、web相关配置三、静态资源处理3.1 默认路径3.2 覆盖路径 四、自定义拦截器(SpringMVC配置)4.1 拦截器声明4.2 拦截器配置4.2 拦截器测试 一、实现过程 springboot-part - GitHub 1.1 创建程序 模…

pip 配置镜像加速安装

在使用pip安装Python第三方库时&#xff0c;默认是使用pip官网的非常慢&#xff0c;可通过配置国内镜像源加速下载速度&#xff0c;以下是如何使用国内镜像源安装Python库的两种常见方式&#xff1a; 临时使用镜像源安装 如果你只是想临时使用某个镜像源安装单个或几个库&…

Hadoop大数据应用:Yarn 节点实现扩容与缩容

目录 一、实验 1.环境 2.Yarn 节点扩容 3.Yarn 节点缩容 二、问题 1.yarn启动服务报错 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 主机架构软件版本IP备注hadoop NameNode &#xff08;已部署&#xff09; SecondaryNameNode &#xff08;已部署&…

Hadoop大数据应用:HDFS 集群节点缩容

目录 一、实验 1.环境 2.HDFS 集群节点缩容 二、问题 1.数据迁移有哪些状态 2.数据迁移失败 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 主机架构软件版本IP备注hadoop NameNode &#xff08;已部署&#xff09; SecondaryNameNode &#xff08;已部署…

react 项目如何暴露 webpack配置文件

首先创建一个项目&#xff1a; // 全局安装 create-react-app 脚手架 npm install create-react-app -g// 创建项目 create-react-app demo 创建完成后&#xff0c;进到项目根目录&#xff0c;执行以下命令&#xff1a; npm run eject 出现以下命令&#xff1a; 选择yes即可…

unity3d Animal Controller的Animal组件中Speeds,States和modes基础部分理解

Speeds 速度集是修改你可以做的原始动画,增加或减少运动,旋转,或动画速度。它们与 州 所以,当动物在运动状态下,在飞行或游泳时,你可以有不同的速度 如果你的性格动画是 (已到位), 你一定要调整速度 位置 和 旋转 每一种的价值观 速度装置 …否则,它们不会移动或旋转。 每个速…

关于nginx做正向代理的那些事

声明&#xff1a;该文章只是用于技术探索的实践与讨论&#xff0c;没有其他用途。 准备&#xff1a; 一台能访问外网的服务器&#xff1b;一个域名&#xff0c;映射到上面的服务器&#xff1b;https的证书及密钥&#xff1b;nginx安装包&#xff1b; 协议使用&#xff1a; 开…

3.基础算法之搜索与图论

1.深度优先搜索 深度优先搜索&#xff08;DFS&#xff0c;Depth First Search&#xff09;是一种用于遍历或搜索树或图的算法。它将当前状态按照一定的规则顺序&#xff0c;先拓展一步得到一个新状态&#xff0c;再对这个新状态递归拓展下去。如果无法拓展&#xff0c;则退回…

springboot笔记

springboot笔记 快速入门添加父工程和web启动器创建启动类编写处理器controller springboot 配置文件批量读取配置文件多环境配置和激活SpringBoot--springmvc整合和配置SpringBoot3整合Druid连接池SpringBoot3整合Mybatisspringboot--aop和tx整合和配置springboot工程打包和快…

upload-labs 0.1 靶机详解

下载地址https://github.com/c0ny1/upload-labs/releases Pass-01 他让我们上传一张图片&#xff0c;我们先尝试上传一个php文件 发现他只允许上传图片格式的文件&#xff0c;我们来看看源码 我们可以看到它使用js来限制我们可以上传的内容 但是我们的浏览器是可以关闭js功能的…

详解数据挖掘

数据挖掘&#xff08;Data Mining&#xff09;&#xff0c;又译为资料探勘、数据采矿&#xff0c;是数据库知识发现&#xff08;Knowledge-Discovery in Databases&#xff0c;简称&#xff1a;KDD&#xff09;中的一个步骤。数据挖掘主要是指从大量的数据中&#xff0c;通过算…

计算机设计大赛 题目:基于LSTM的预测算法 - 股票预测 天气预测 房价预测

文章目录 0 简介1 基于 Keras 用 LSTM 网络做时间序列预测2 长短记忆网络3 LSTM 网络结构和原理3.1 LSTM核心思想3.2 遗忘门3.3 输入门3.4 输出门 4 基于LSTM的天气预测4.1 数据集4.2 预测示例 5 基于LSTM的股票价格预测5.1 数据集5.2 实现代码 6 lstm 预测航空旅客数目数据集预…