kubernetes集群部署sql server数据库服务

news2024/9/21 10:43:13

背景:

因业务上线需要,研发中心要求在kubernetes测试集群部署一个sql server 2017的数据库,用于业务功能调试。

一、实施部署sql server数据库: 

1、拉取sql server 2017的镜像:

[root@harbor-02 ~]# docker pull mcr.microsoft.com/mssql/server:2017-latest
2017-latest: Pulling from mssql/server
699451820735: Pull complete 
861e6e6e8e5e: Pull complete 
4403d783b046: Pull complete 
Digest: sha256:3b913841850a4d57fcfcb798be06acc88ea0f2acc5418bc0c140a43e91c4a545
Status: Downloaded newer image for mcr.microsoft.com/mssql/server:2017-latest

2、上传sql server 2017镜像到私库:

先tag处理一下。

[root@harbor-02 ~]# docker tag mcr.microsoft.com/mssql/server:2017-latest dockerhub.jiang.com/jiang-public/sqlserver:2017-latest

再上传到私有harbor库,

[root@harbor-02 ~]# docker push dockerhub.jiang.com/jiang-public/sqlserver:2017-latest
The push refers to repository [dockerhub.jiang.com/jiang-public/sqlserver]
fdfec26b634f: Pushed 
ef3ecb9d5e46: Pushed 
548a79621a42: Pushed 
2017-latest: digest: sha256:ff8a63a2c900cf3201b948526dff804db58fbeaed83287c94edd3b3359708854 size: 954

3、创建PersistentVolume、PersistentVolumeClaim存储:

因kubernetes集群环境是对接了hpe(华三)的iscsi存储,所以直接通过stoageclass创建pvc存储即可。不过这里会展示pv、pvc存储的yml配置内容。

pvc存储yml配置:

apiVersion: storage.k8s.io/v1
kind: PersistentVolumeClaim
metadata:
  name: sqlserver-db-pvc
  namespace: main-data-test
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  storageClassName: hpe-san
  volumeMode: Filesystem

pv存储的yml配置:

apiVersion: v1
kind: PersistentVolume
metadata:
  annotations:
    pv.kubernetes.io/provisioned-by: csi.hpe.com
  finalizers:
  - kubernetes.io/pv-protection
  - external-attacher/csi-hpe-com
  name: pvc-3361b2d3-7c05-4e38-8533-6a14a9a891f1
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 10Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: sqlserver-db-pvc
    namespace: main-data-test
  csi:
    controllerExpandSecretRef:
      name: hpe-backend
      namespace: hpe-storage
    controllerPublishSecretRef:
      name: hpe-backend
      namespace: hpe-storage
    driver: csi.hpe.com
    fsType: xfs
    nodePublishSecretRef:
      name: hpe-backend
      namespace: hpe-storage
    nodeStageSecretRef:
      name: hpe-backend
      namespace: hpe-storage
    volumeAttributes:
      accessProtocol: iscsi
      allowOverrides: cpg,provisioningType
      compression: "false"
      cpg: SSD_r6
      description: Volume provisioned by the HPE CSI Driver
      fsType: xfs
      hostEncryption: "false"
      hostSeesVLUN: "true"
      provisioningType: tpvv
      snapCpg: SSD_r6
      storage.kubernetes.io/csiProvisionerIdentity: 1723080244247-8081-csi.hpe.com
      volumeAccessMode: mount
    volumeHandle: pvc-3361b2d3-7c05-4e38-8533-6a14a9a891f1
  persistentVolumeReclaimPolicy: Delete
  storageClassName: hpe-san
  volumeMode: Filesystem

4、创建无状态的sql server数据库:

这里的无状态就是deployment控制器的配置。

kind: Deployment
metadata:
  name: sqlserver-db-auuqd
  namespace: main-data-test
  generation: 1
  labels:
    app: sqlserver-db-auuqd
    name: sqlserver-db
    version: '2017'
spec:
  replicas: 1
  selector:
    matchLabels:
      app: sqlserver-db-auuqd
      name: sqlserver-db
  template:
    metadata:
      labels:
        app: sqlserver-db-auuqd
        name: sqlserver-db
        version: '2017'
    spec:
      volumes:
        - name: sqlserver-db-pvc
          persistentVolumeClaim:
            claimName: sqlserver-db-pvc
      containers:
        - name: sqlserver
          image: 'dockerhub.jiang.com/jiang-public/sqlserver:2017-latest'
          ports:
            - containerPort: 1433
              protocol: TCP
          env:
            - name: ACCEPT_EULA
              value: 'Y'
            - name: SA_PASSWORD
              value: mdm@1234
          resources:
            limits:
              cpu: '2'
              memory: 4Gi
            requests:
              cpu: '1'
              memory: 1Gi
          volumeMounts:
            - name: sqlserver-db-pvc
              mountPath: /var/opt/mssql
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: IfNotPresent
          securityContext:
            privileged: false
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      serviceAccountName: default
      serviceAccount: default
      securityContext: {}
  strategy:
    type: Recreate
  minReadySeconds: 10
  revisionHistoryLimit: 10
  progressDeadlineSeconds: 600

注:这里需要修改的内容主要如下:

1、volumes存储的声明:

2、volumeMounts:存储的挂载

3、env:环境变量的声明

            - name: ACCEPT_EULA(表示接受最终用户协议)
              value: 'Y'
            - name: SA_PASSWORD(sa用户的密码)
              value: mdm@1234

4、ports:端口的声明

        这里默认的是1433

5、创建servcie控制器配置,对外提供访问:

sql server数据库需要对外提供服务,需要配置service控制器。

kind: Service
metadata:
  name: sqlserver-db
  namespace: main-data-test
  labels:
    name: sqlserver-db
    system/appName: master-data-base
spec:
  ports:
    - name: tcp-port-0
      protocol: TCP
      port: 1433
      targetPort: 1433
  selector:
    name: sqlserver-db
  clusterIP: 172.32.60.172
  type: ClusterIP
  sessionAffinity: None

二、使用Navicat Premium连接:

可以直接通过 Navicat Premium 来连接sql server数据库。

登陆之后可以创建一个数据库,进行测试一下。

注:到此,在kubernetes集群上部署sql server数据库就完成了。希望可以帮助到大家。

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

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

相关文章

POI导出复杂Excel表格

记录在遇到复杂统计报表业务时,无法使用Excel模板生成对应报表,则采用最原始poi方式进行创建生成 业务所需统计报表如下图 麻烦所在各类型订单下方餐别为动态数据,废话不多说直接上代码 new CellRangeAddress(起始行号, 终止行号, 起始列号,…

Android Studio 设置打开layout.xml文件的默认视图split

Android Studio 设置打开layout.xml文件的默认视图 Android Studio 设置打开layout.xml文件的默认视图 androd studio 在使用的时候打开我们自己的布局文件默认展示的视图为Design,我们想要编辑的时候还有手动切换成splite 视图或者Code视图,不上很方便&#xff0c…

CA证书和openssl介绍

文章目录 一、加密和算法常见的安全攻击加密算法和协议对称加密非对称加密算法 二、CA和证书中间人攻击CA和证书安全协议SSL/TLS协议介绍HTTPS 三、opensslopenssl介绍使用openssl实现对称加密使用openssl命令生成加密密码生成随机密码建立私有CA证书申请颁发建立私有CA实际例子…

Java-数据库基本概念

数据库DataBase 定义: 保存一组数据的仓库就是数据库 例 BirdBoot项目中,我们为了保存一组用户信息,创建了一个目录users。里面用若干个文件保存每一个用户信息 此时users目录就可以称为是一个数据库 只不过对于这些数据的维护操作,要么…

【最多可以参加的会议数目】python刷题记录

R4-贪心篇 结束时间升序排列优先队列 class Solution:def maxEvents(self, events: List[List[int]]) -> int:dictdefaultdict(list)for i,val in enumerate(events):dict[val[0]].append(val[1])#优先队列(小根堆)h[]ret0for i in range(1,100001)…

C语言求平方和倒数

文章目录 1. 代码实现float类型数据double类型数据使用 double 类型的调整 2. 魔数与位级别操作浮点数表示位级别魔数操作 3. 牛顿迭代4. 复杂代码具体解释具体解释:目的:举例: 5.感谢 平方和倒数 广泛用于计算机图形学中,尤其是在…

Qt实现类似淘宝商品展示看板功能简版

前一篇文章的简化版本只有浏览功能,前一篇文章链接如下: Qt实现类似淘宝商品看板的界面,带有循环翻页以及点击某页跳转的功能 效果如下: 代码留给有需要的人。 #ifndef ModelDashboardGroup_h__ #define ModelDashboardGroup_…

DC-DC PCB 布线参考

在DC-DC芯片的应用设计中,PCB布板是否合理对于芯片能否表现出其最优性能有着至关重要的影响。不合理的PCB布板会造成芯片性能变差如线性度下降(包括输入线性度以及输出线性度)、带载能力下降、工作不稳定、EMI辐射增加、输出噪声增加等&#…

容量 动效 仪表盘 Canvas 2D API

容量动效 <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Canvas 内部圆形波浪</title><…

【区块链+乡村振兴】基于区块链的农权抵押贷款平台 | FISCO BCOS应用案例

当前两权抵押贷款业务逐渐活跃&#xff0c;但因参与两权抵押的相关方独立运营各自的管理系统&#xff0c;办理农权抵押贷款业务时&#xff0c; 存在多方信息不对称、业务办理过程繁琐、低效等问题&#xff0c;且不利于相关部门对农权抵押情况进行监督管理。具体表现在&#xff…

《数据资产管理核心技术与应用》相关分享章节

【图书推荐】《数据资产管理核心技术与应用》-CSDN博客 图书《数据资产管理核心技术与应用》介绍-CSDN博客 本文用于快速了解数据资产管理的概念及其技术范围。 数据资产通常是指那些可以通过分析来揭示价值、支持企业决策制定、优化企业流程、预测行业的未来趋势或产生更大…

dhcp+checkkickstar的实验理解

文章目录 实验介绍使用的服务介绍PXE服务dhcp服务Kickstart 服务tftp服务 第一部分&#xff08;基础部分&#xff09;代码展示注意点第一点![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/13c0f4aabb664655a4dd285dd8e5527a.png)第二点 结果展示 第二部分&#xff08…

元岳食堂采购供应链系统-智慧食堂数据化解决方案

随着社会的发展和科技的进步&#xff0c;在数字化浪潮的推动下&#xff0c;智慧食堂供应链系统逐渐成为食堂管理的重要工具。在此背景下&#xff0c;元岳食堂采购供应链系统应运而生&#xff0c;该系统通过其独特的数字化和自动化功能&#xff0c;能够对食堂的采购、储存、配送…

重庆市合川区第二届网络安全“钓鱼城“杯部分题解

MISC 下载文件后&#xff0c;进行分析 往下划看见smb 最开始以为是通过smb协议下载的文件 找半天没发现&#xff0c;往前翻了翻&#xff0c;看见了flag 存储为原始数据 通过上述分析发现开头是pk&#xff0c;保存为zip压缩包 发现需要密码 感觉是伪加密 使用工具一把梭 再…

免费的GA/T1400视图库平台Easy1400软件又迭代出新版本了!

自从年初发布了这款免费的GA1400视图库平台&#xff08;https://blog.csdn.net/xiejiashu/article/details/135050381&#xff09;&#xff0c;本来就是想做一做能给大家差不多能用就行了&#xff0c;没成想总是忍不住要改一改、优化优化&#xff0c;于是又经过了几个月的优化&…

合宙Air201定位模组,千万不要忘记设置这个......

最近一个杭州的客户&#xff0c;使用合宙的 Air201——4G资产定位模组&#xff0c;做室内wifi定位&#xff0c;发现在同一园区不同楼栋内定位结果相同&#xff0c;找到我们希望做问题排查。 排查过程记录在这里了&#xff0c;如果你也有类似问题&#xff0c;希望可以帮助到你~ …

Pinterest:从 Druid 到 StarRocks,实现 6 倍成本效益比提升

导读&#xff1a; 开源无国界&#xff0c;StarRocks 自开源以来&#xff0c;近3年的时间里已在全球数据技术领域崭露头角。我们欣喜地发现&#xff0c;越来越多的海外用户正在使用并积极推广着 StarRocks。为了促进知识共享&#xff0c;StarRocks中文社区将精选优秀文章与大家共…

华为手机平板开启下方提示条(横条)

打开设置&#xff0c;系统与更新&#xff0c;系统导航方式&#xff0c;手势导航&#xff0c;更多设置&#xff0c;显示提示条。 该功能部分机型不支持&#xff0c;我的MatePad SE支持&#xff08;别买&#xff0c;割韭菜&#xff09;

有自增变量作为循环条件的循环边界的理解

while (i < 100) 先判断后增加 当次i值用于判断&#xff0c;范围1~99&#xff0c; 递增后的i值为当次循环值&#xff0c;即循环内的i值&#xff0c;范围2~100 当 i 9 时&#xff0c;小于 100&#xff0c;进入循环体。在进入循环体之前&#xff0c;i 递增为 10。10满足i…

面试笔记--(正在整理版)

面试常见: Jvm&#xff0c;高并发&#xff0c;多线程&#xff0c;数据库&#xff0c;redis&#xff0c;框架 多线程 1.线程和进程是什么?如何保证线程安全性? 进程线程&#xff08;一&#xff09;——基础知识&#xff0c;什么是进程&#xff1f;什么是线程&#xff1f;_…