go程序调用k8s pod副本的名称IP手动赋值给configmap的参数

news2025/3/17 15:57:34

1、创建configmap

---
apiVersion: v1
data:
  config.yaml: >-
    # config.yaml


    Etcd:
      Endpoints:
        - "etcd-server:2379"
      Username: ""
      Password: ""

    Exchanges:
      #- Name: "Binance"
      #  Symbol: "BTCUSDT"
      #  WSUrl: "wss://fstream.binance.com/ws"
      - Name: "OKX"
        Symbol: "BTCUSDT"
        WSUrl: "wss://ws.okx.com:8443/ws/v5/public"
      #- Name: "Bybit"
      #  Symbol: "ETHUSDT"
      #  WSUrl: "wss://stream.bybit.com/v5/public/linear"
      #- Name: "Bitget"
      #  Symbol: "DOGEUSDT"
      #  WSUrl: "wss://ws.bitget.com/mix/v1/stream"
      #  ContractType: "mc"
      #- Name: "Pyth"
      #  Symbol: "BTCUSDT"
      #  WSUrl: "wss://hermes.pyth.network/ws"
      #  PriceId: "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"

    DatabaseDSN:
    "abc:defg@tcp(rm-sefdref.mysql.rds.aliyuncs.com:3306)/miniapp"


    RedisAddr: "0.0.0.0:6379"

    RedisPassword: "S4t#d%dgrdfer3"

    RedisDB: 1


    KafkaBrokers:
      - "0.0.0.0:3195"

    BOT_TOKEN: "sefefedsfa:AAELY1TwInw46D3Lhpl0LvpQz2v-DoIq5ww"


    KafkaPriceUpdateTopic: "price_updates"


    SupportedCoins:
      - "BTC"
      - "ETH"
    #

    #Chains:

    #  - Name: "ETH"

    ##    ChainName: "ETH"

    ##    NodeUrl:
    "https://crimson-frosty-county.quiknode.pro/serfefwaetwegrteyhtdrtyhfhyjhtf/"

    ##    ConfirmationNum: 16

    #    ExcludedAddresses: "11","22"

    ##    ScanInterval: 60

    #


    BaseSlippage: 0.005


    #Port: "0.0.0.0:8901"


    LogLevel: "info"



    Services:
      - Name: "api_gateway"
        ServiceID: "api-gateway-1"
        ServiceHost: "api_gateway"
        ServicePort: 8080
      - Name: "spider_service"
        ServiceID: "spider-service-1"
        ServiceHost: "spider_service"
        ServicePort: 50051
      - Name: "${SERVICE_NAME}"
        ServiceID: "${SERVICE_ID}"
        ServiceHost: "${POD_IP}"
        ServicePort: ${SERVICE_PORT}
      - Name: "trading_engine_service"
        ServiceID: "trading-engine-service-1"
        ServiceHost: "trading_engine_service"
        ServicePort: 50053
      - Name: "auth_service"
        ServiceID: "auth-service-1"
        ServiceHost: "auth_service"
        ServicePort: 50054
      - Name: "user_service"
        ServiceID: "user-service-1"
        ServiceHost: "user_service"
        ServicePort: 50055
      - Name: "account_service"
        ServiceID: "account-service-1"
        ServiceHost: "account_service"
        ServicePort: 50056
      - Name: "wallet_service"
        ServiceID: "wallet-service-1"
        ServiceHost: "wallet_service"
        ServicePort: 50057
    #    HttpPort : 8091
      - Name: "chain_scanner_service"
        ServiceID: "chain-scanner-service-1"
        ServiceHost: "chain_scanner_service"
        ServicePort: 50058
      - Name: "out_service"
        ServiceID: "out-service-1"
        ServiceHost: "out_service"
        ServicePort: 50059

    SlippageTiers:
      tier1:
        - Threshold: 1000
          Factor: 0.001
        - Threshold: 5000
          Factor: 0.0008
      tier2:
        - Threshold: 10000
          Factor: 0.0005

    GameOptions:
      TenantId: 90026
      ProductCode: UD_OPTION
      ExitUrl: https://t.me/abc/Good
      AccessCode: 15224562686655
      IvValue: DJIOHFDsaifiajfiwefjqwi63
      GetUrl: https://abc.pro/saas-option-api/open/tenant/getSaasOptionUrl
kind: ConfigMap
metadata:
  name: config.yaml
  namespace: test
  resourceVersion: '150039730'


2、创建deployment,其中包含initContainers和containers两部分

---
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    k8s.kuboard.cn/displayName: bot-service
  labels:
    k8s.kuboard.cn/name: bot-service
  name: bot-service
  namespace: test
  resourceVersion: '150036998'
spec:
  progressDeadlineSeconds: 600
  replicas: 2
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s.kuboard.cn/name: bot-service
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        k8s.kuboard.cn/name: bot-service
    spec:
      containers:
        - env:
            - name: SERVICE_ID
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.name
          image: 'harbor.cuiwjrpcvi.com/bktest/bot_service:test'
          imagePullPolicy: IfNotPresent
          name: bot-service
          ports:
            - containerPort: 50052
              name: adwqdw
              protocol: TCP
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
            - mountPath: /telegram/shared/config
              name: config-output
      dnsPolicy: ClusterFirst
      hostAliases:
        - hostnames:
            - etcd-server
          ip: 172.16.1.193
      imagePullSecrets:
        - name: harbor-secret
      initContainers:
        - args:
            - >-
              apk add --no-cache gettext && envsubst <
              /config-template/config.yaml >
              /telegram/shared/config/config.yaml;
          command:
            - /bin/sh
            - '-c'
          env:
            - name: SERVICE_ID
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.name
            - name: POD_IP
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: status.podIP
            - name: SERVICE_NAME
              value: bot-service
            - name: SERVICE_PORT
              value: '50052'
          image: 'alpine:3.17'
          imagePullPolicy: IfNotPresent
          name: bot-service-init
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
            - mountPath: /config-template
              name: config-template
            - mountPath: /telegram/shared/config/
              name: config-output
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
        - configMap:
            defaultMode: 420
            items:
              - key: config.yaml
                path: config.yaml
            name: config.yaml
          name: config-template
        - emptyDir: {}
          name: config-output

3、启动deployment并登录容器验证结果
查询configmap文本内容
节点一

cat shared/config/config.yaml
。。。。。。
  - Name: "bot-service"
    ServiceID: "bot-service-5c7745fff4-c8w6b"
    ServiceHost: "172.20.250.31"
    ServicePort: 50052
。。。。。。    

节点二

cat shared/config/config.yaml
。。。。。。
  - Name: "bot-service"
    ServiceID: "bot-service-5c7745fff4-8p72g"
    ServiceHost: "172.20.171.3"
    ServicePort: 50052
。。。。。。    

4、登录etcd查看注册情况

root@iZj6ch896i3lsjbs6cqk2iZ:/data/docker-compose/bot_service# docker exec -it etcd-server /bin/bash
I have no name!@etcd-server:/opt/bitnami/etcd$ etcdctl get --prefix /service
/services/bot/bot-service-5c7745fff4-8p72g
172.20.171.3:50052
/services/bot/bot-service-5c7745fff4-c8w6b
172.20.250.31:50052

至此go程序通过自己提交ip和服务信息注册到etcd已成功完成

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

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

相关文章

面试系列|蚂蚁金服技术面【1】

哈喽&#xff0c;大家好&#xff01;今天分享一下蚂蚁金服的 Java 后端开发岗位真实社招面经&#xff0c;复盘面试过程中踩过的坑&#xff0c;整理面试过程中提到的知识点&#xff0c;希望能给正在准备面试的你一些参考和启发&#xff0c;希望对你有帮助&#xff0c;愿你能够获…

使用傅里叶变换测量声卡的频率失真

文章目录 一、说明二、关于声卡的技术详述三、实验代码获取四、结论 一、说明 假如我希望使用我的声卡来模拟软件无线电&#xff0c;利用声音而不是射频信号。我的声卡能胜任这项任务吗&#xff1f;本文将研究一种技术来找出答案。另外&#xff0c;需要了解音频技术的读者也可…

【HTML5】01-HTML摆放内容

本文介绍HTML5摆放标签的知识点。 目录 1. HTML概念 2. HTML骨架 3. 标签的关系 4. 标题标签 5. 段落标签 6. 换行和水平线 7. 文本格式化标签 8. 图像标签 图像 - 属性 9. 路径 相对路径 绝对路径 10. 超链接标签 11. 音频标签 12. 视频标签 1. HTML概念 HTM…

内存管理:

我们今天来学习一下内存管理&#xff1a; 1. 内存分布&#xff1a; 我们先来看一下我们下面的图片&#xff1a; 这个就是我们的内存&#xff0c;我们的内存分为栈区&#xff0c;堆区&#xff0c;静态区&#xff0c;常量区&#xff1b; 我们的函数栈帧开辟消耗的内存就是我们…

设计模式使用Java案例

代码设计要有可维护性&#xff0c;可复用性&#xff0c;可扩展性&#xff0c;灵活性&#xff0c;所有要使用设计模式进行灵活设计代码 创建型 简单工厂模式&#xff08;Simple Factory&#xff09; 简单工厂模式&#xff08;Simple Factory Pattern&#xff09;是一种创建型…

模运算的艺术:从基础到高阶的算法竞赛应用

在算法竞赛中&#xff0c;模运算&#xff08;取模运算&#xff09;是一个非常重要的概念&#xff0c;尤其在处理大数、防止溢出、以及解决与周期性相关的问题时。C 中的模运算使用 % 运算符&#xff0c;但它的行为和使用场景需要特别注意。 1. 模运算的基本概念 模运算是指求一…

ST电机库电流采样 三电阻单ADC

一、概述 下图是三电阻采样的电路结构 其中流过三相系统的电流I1、I2、I3遵循以下关系: 因此,为了重建流过普通三相负载的电流,在我们可以用以上公式计算的情况下,只需要对三相中的两相进行采样即可。 STM32的ADC可以很灵活的配置成同步采集两路ADC数据,…

现代密码学 | 具有保密和认证功能的安全方案

1.案例背景 1.1 2023年6月&#xff0c;微软云电子邮件泄露 事件描述&#xff1a; 2023年6月&#xff0c;属于多家美国政府机构的微软云电子邮件账户遭到非法入侵&#xff0c;其中包括了多位高级政府官员的电子邮件。据报道&#xff0c;美国国务院的10个邮件账户中共有6万封电…

一款基于Python的从常规文档里提取图片的简单工具开发方案

一款基于Python的从常规文档里提取图片的简单工具开发方案 1. 环境准备 安装必需库 pip install python-docx PyMuPDF openpyxl beautifulsoup4 pillow pip install pdfplumber # PDF解析备用方案 pip install tk # Python自带&#xff0c;无需安装工具选择 开发环…

JetBrains(全家桶: IDEA、WebStorm、GoLand、PyCharm) 2024.3+ 2025 版免费体验方案

JetBrains&#xff08;全家桶: IDEA、WebStorm、GoLand、PyCharm&#xff09; 2024.3 2025 版免费体验方案 前言 JetBrains IDE 是许多开发者的主力工具&#xff0c;但从 2024.02 版本起&#xff0c;JetBrains 调整了试用政策&#xff0c;新用户不再享有默认的 30 天免费试用…

Docker生存手册:安装到服务一本通

文章目录 一. Docker 容器介绍1.1 什么是Docker容器&#xff1f;1.2 为什么需要Docker容器&#xff1f;1.3 Docker架构1.4 Docker 相关概念1.5 Docker特点 二. Docker 安装2.1 查看Linux内核版本2.2 卸载老版本docker&#xff0c;避免产生影响2.3 升级yum 和配置源2.4 安装Dock…

Linux内核传输层UDP源码分析

一、用户数据包协议&#xff08;UDP&#xff09; 1.UDP数据报头 UDP 提供面向消息的不可靠传输&#xff0c;但没有拥塞控制功能。很多协议都使用 UDP&#xff0c;如用于 IP 网络传输音频和视频的实时传输协议 (Real-time Transport Protocol&#xff0c;RTP)&#xff0c;此类型…

FPGA学习(二)——实现LED流水灯

FPGA学习(二)——实现LED流水灯 目录 FPGA学习(二)——实现LED流水灯一、DE2-115时钟源二、控制6个LED灯实现流水灯1、核心逻辑2、代码实现3、引脚配置4、实现效果 三、模块化代码1、分频模块2、复位暂停模块3、顶层模块 四、总结 一、DE2-115时钟源 DE2-115板子包含一个50MHz…

Linux如何在设备树中表示和引用设备信息

DTS基本知识 dts 硬件的相应信息都会写在.dts为后缀的文件中&#xff0c;每一款硬件可以单独写一份xxxx.dts&#xff0c;一般在Linux源码中存在大量的dts文件&#xff0c;对于arm架构可以在arch/arm/boot/dts找到相应的dts&#xff0c;一个dts文件对应一个ARM的machie。 dtsi 值…

Matlab 汽车振动多自由度非线性悬挂系统和参数研究

1、内容简介 略 Matlab 169-汽车振动多自由度非线性悬挂系统和参数研究 可以交流、咨询、答疑 2、内容说明 略 第二章 汽车模型建立 2.1 汽车悬架系统概述 2.1.1 悬架系统的结构和功能 2.1.2 悬架分类 2.2 四分之一车辆模型 对于车辆动力学&#xff0c;一般都是研究其悬…

生活中的可靠性小案例11:窗户把手断裂

窗户把手又断了&#xff0c;之前也断过一次&#xff0c;使用次数并没有特别多。上方的图是正常的把手状态&#xff0c;断的形状如下方图所示。 这种悬臂梁结构&#xff0c;没有一个良好的圆角过渡&#xff0c;导致应力集中。窗户的开关&#xff0c;对应的是把手的推拉&#xff…

[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana_加法_python之禅

074_ai辅助编程_水果程序_fruits_加法 回忆上次内容 上次直接从模块中导入变量、函数 from my_file import pi 导入my_file.pi 并作为 pi 使用 from my_file import pi as my_pi 导入变量 并 重命名 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; …

【图论】并查集的学习和使用

目录 并查集是什么&#xff1f; 举个例子 组成 父亲数组&#xff1a; find函数&#xff1a; union函数&#xff1a; 代码实现&#xff1a; fa[] 初始化code: find code&#xff1a; 递归实现: 非递归实现: union code : 画图模拟&#xff1a; 路径压缩&#xff1a…

欢乐力扣:反转链表

文章目录 1、题目描述2、思路 1、题目描述 反转链表。  给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 2、思路 借助cur指针和pre双指针来调整链表的前后指向。 # Definition for singly-linked list. # class ListNode: # def __i…

什么是大带宽服务器

什么是大带宽服务器&#xff1f; 在深入探讨大带宽之前&#xff0c;让我们先明确带宽的概念。带宽与我们日常所说的宽带有所不同&#xff0c;宽带是运营商为满足家庭或商业上网需求所提供的服务&#xff0c;而带宽则特指数据的传输速度&#xff0c;尤其是上行速度。大带宽服务…