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

1、创建configmap

---
apiVersion: v1
data:config.yaml: >-# config.yamlEtcd: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: 1KafkaBrokers:- "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: 50059SlippageTiers:tier1:- Threshold: 1000Factor: 0.001- Threshold: 5000Factor: 0.0008tier2:- Threshold: 10000Factor: 0.0005GameOptions:TenantId: 90026ProductCode: UD_OPTIONExitUrl: https://t.me/abc/GoodAccessCode: 15224562686655IvValue: DJIOHFDsaifiajfiwefjqwi63GetUrl: https://abc.pro/saas-option-api/open/tenant/getSaasOptionUrl
kind: ConfigMap
metadata:name: config.yamlnamespace: testresourceVersion: '150039730'

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

---
apiVersion: apps/v1
kind: Deployment
metadata:annotations:k8s.kuboard.cn/displayName: bot-servicelabels:k8s.kuboard.cn/name: bot-servicename: bot-servicenamespace: testresourceVersion: '150036998'
spec:progressDeadlineSeconds: 600replicas: 2revisionHistoryLimit: 10selector:matchLabels:k8s.kuboard.cn/name: bot-servicestrategy:rollingUpdate:maxSurge: 25%maxUnavailable: 25%type: RollingUpdatetemplate:metadata:creationTimestamp: nulllabels:k8s.kuboard.cn/name: bot-servicespec:containers:- env:- name: SERVICE_IDvalueFrom:fieldRef:apiVersion: v1fieldPath: metadata.nameimage: 'harbor.cuiwjrpcvi.com/bktest/bot_service:test'imagePullPolicy: IfNotPresentname: bot-serviceports:- containerPort: 50052name: adwqdwprotocol: TCPresources: {}terminationMessagePath: /dev/termination-logterminationMessagePolicy: FilevolumeMounts:- mountPath: /telegram/shared/configname: config-outputdnsPolicy: ClusterFirsthostAliases:- hostnames:- etcd-serverip: 172.16.1.193imagePullSecrets:- name: harbor-secretinitContainers:- args:- >-apk add --no-cache gettext && envsubst </config-template/config.yaml >/telegram/shared/config/config.yaml;command:- /bin/sh- '-c'env:- name: SERVICE_IDvalueFrom:fieldRef:apiVersion: v1fieldPath: metadata.name- name: POD_IPvalueFrom:fieldRef:apiVersion: v1fieldPath: status.podIP- name: SERVICE_NAMEvalue: bot-service- name: SERVICE_PORTvalue: '50052'image: 'alpine:3.17'imagePullPolicy: IfNotPresentname: bot-service-initresources: {}terminationMessagePath: /dev/termination-logterminationMessagePolicy: FilevolumeMounts:- mountPath: /config-templatename: config-template- mountPath: /telegram/shared/config/name: config-outputrestartPolicy: AlwaysschedulerName: default-schedulersecurityContext: {}terminationGracePeriodSeconds: 30volumes:- configMap:defaultMode: 420items:- key: config.yamlpath: config.yamlname: config.yamlname: 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.rhkb.cn/news/32838.html

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

相关文章

【Linux指北】Linux的重定向与管道

一、了解Linux目录配置标准FHS FHS本质&#xff1a;是一套规定Linux目录结构&#xff0c;软件建议安装位置的标准。 (使用Linux来开发产品或者发布软件的公司、个人太多&#xff0c;如果每家公司或者个人都按照自己的意愿来配置文件或者软件的存放位置&#xff0c;这无疑是一…

Qt6.8.2中JavaScript调用WebAssembly的js文件<1>

前段时间已经学习了如何在QtAssembly中编译FFmpeg资源了&#xff0c;接下来需要使用Html来调用QtCreator中WebAssembly套件写的功能&#xff0c;逐步实现javascrpt与c复杂功能的视线。 接下来我先为大家介绍一个非常简单的加法调用吧&#xff01; 功能讲解 开发环境&#xf…

3.13-进程

进程 进程和程序 程序&#xff1a;编译好的二进制文件&#xff0c;不占用系统资源&#xff08;内存&#xff09;。进程&#xff1a;活跃的程序&#xff0c;不消耗系统图资源&#xff08;内存&#xff09;。 MMU PCB 进程控制块 本质&#xff1a;结构体&#xff1a;struct …

在 CentOS 7 上安装 PHP 7.3

在 CentOS 7 上安装 PHP 7.3 可以按照以下步骤进行操作&#xff1a; 1. 安装必要的依赖和 EPEL 仓库 EPEL&#xff08;Extra Packages for Enterprise Linux&#xff09;是为企业级 Linux 提供额外软件包的仓库&#xff0c;yum-utils 用于管理 yum 仓库。 sudo yum install -…

DeepSeek模型本地化部署方案及Python实现

DeepSeek实在是太火了&#xff0c;虽然经过扩容和调整&#xff0c;但反应依旧不稳定&#xff0c;甚至小圆圈转半天最后却提示“服务器繁忙&#xff0c;请稍后再试。” 故此&#xff0c;本文通过讲解在本地部署 DeepSeek并配合python代码实现&#xff0c;让你零成本搭建自己的AI…

C++从入门到入土(七)——多态

目录 前言 多态的概念 多态的定义 虚函数的介绍 虚函数的重写/覆盖 析构函数的重写 override和final关键字 纯虚函数和抽象类 重写/重载/隐藏总结 多态的原理 小结 前言 C一共有三个特性&#xff0c;封装、继承和多态&#xff0c;在前面的文章中&#xff0c;我们分别…

浅谈时钟启动和Systemlnit函数

时钟是STM32的关键&#xff0c;是整个系统的心脏&#xff0c;时钟如何启动&#xff0c;时钟源如何选择&#xff0c;各个参数如何设置&#xff0c;我们从源码来简单分析一下时钟的启动函数Systemlnit&#xff08;&#xff09;。 Systemlnit函数简介 我们先来看一下源程序的注释…

【数据结构】6栈

0 章节 3&#xff0e;1到3&#xff0e;3小节。 认知与理解栈结构&#xff1b; 列举栈的操作特点。 理解并列举栈的应用案例。 重点 栈的特点与实现&#xff1b; 难点 栈的灵活实现与应用 作业或思考题 完成学习测试&#xff12;&#xff0c;&#xff1f; 内容达成以下标准(考核…

HOT100——链表篇Leetcode160. 相交链表

文章目录 题目&#xff1a;Leetcode160. 相交链表原题链接思路代码 题目&#xff1a;Leetcode160. 相交链表 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表…

江科大51单片机笔记【16】AD/DA转换(下)

写在前言 此为博主自学江科大51单片机&#xff08;B站&#xff09;的笔记&#xff0c;方便后续重温知识 在后面的章节中&#xff0c;为了防止篇幅过长和易于查找&#xff0c;我把一个小节分成两部分来发&#xff0c;上章节主要是关于本节课的硬件介绍、电路图、原理图等理论知识…

【CF】Day5——Codeforces Round 921 (Div. 2) BC

B. A Balanced Problemset? 题目&#xff1a; 思路&#xff1a; 这道题要我们分成n个子问题&#xff0c;我们假设这几个子问题分别是a1,a2,a3,...an&#xff0c; 那么就是让我们求 gcd(a1,a2,a3,....,an)&#xff0c;我们假设这个值是d 那么就有 d | a1&#xff0c;d | a2…

Mininet 自定义拓扑类型详解

Mininet 通过 --topo 参数支持多种自定义网络拓扑结构&#xff0c;适用于不同场景的网络模拟需求。以下是所有内置拓扑类型及其参数说明&#xff1a; 一、基础拓扑类型 拓扑类型参数格式说明示例命令singlesingle,<n>单一交换机连接所有主机&#xff08;默认 2 台主机&a…

图论part3|101.孤岛的总面积、沉没孤岛、417. 太平洋大西洋水流问题

101. 孤岛的总面积 &#x1f517;&#xff1a;101. 孤岛的总面积思路&#xff1a;和昨天的岛的区别是&#xff1a;是否有挨着边的岛屿 所以可以先遍历四条边挨着的岛屿&#xff0c;把他们标记为非孤岛再计算其他岛屿当中的最大面积 代码&#xff1a;&#xff08;深度搜索&…

第十一届蓝桥杯单片机国赛

什么&#xff1f;4T模拟赛和省赛做起来轻轻松松&#xff1f;不妨来挑战一下第十一届国赛&#xff0c;这一届的国赛居然没考超声波、串口通信&#xff01;只要你正确地理解了题目的意思&#xff0c;规避出题人挖的坑&#xff0c;拿个国一轻轻松松。 附件&#xff1a;第十一届蓝桥…

【Unity6打包Android】游戏启动的隐私政策弹窗(报错处理)

Unity版本&#xff1a;Unity6000.0.24 增加弹窗步骤 1. 自定义AndroidManifest 1.1 在Player Setting > Publishing Settings > Build下勾选Custom Main Manifest&#xff0c;在Assets/Plugins/Android路径下生成AndroidManifest.xml文件 1.2 修改AndroidManifest.xml…

记录一个SQL自动执行的html页面

在实际工作场景中&#xff0c;需要运用到大量SQL语句更新业务逻辑&#xff0c;对程序员本身&#xff0c;写好的sql语句执行没有多大问题&#xff08;图1&#xff09;&#xff0c;但是对于普通用户来说还是有操作难度的。因此我们需要构建一个HTML页面&#xff08;图2&#xff0…

mac安装mysql之后报错zsh: command not found: mysql !

在Mac上安装MySQL后&#xff0c;如果终端中找不到mysql命令&#xff0c;通常是 因为MySQL的命令行工具&#xff08;如mysql客户端&#xff09;没有被正确地添加到你的环境变量中。 检查 MySQL 是否已安装 ps -ef|grep mysql查看到路径在 /usr/local/mysql/bin 查看 .bash_pro…

socket编程与TCP协议

如果你想和远方的朋友通电话&#xff0c;但是&#xff0c;没有办法直接把自己的声音放在电线上变成电流信号&#xff0c;你需要使用电话机拿起听筒拨号&#xff0c;而这个电话就是Socket&#xff0c;它让你简单方便地完成电流通话&#xff0c;从我们编程的角度来看&#xff0c;…

css基本功

为什么 ::first-letter 是伪元素&#xff1f; ::first-letter 的作用是选择并样式化元素的第一个字母&#xff0c;它创建了一个虚拟的元素来包裹这个字母&#xff0c;因此属于伪元素。 grid布局 案例一 <!DOCTYPE html> <html lang"zh-CN"><head&…

环境配置 | 5分钟极简Git入门:从零上手版本控制

你是否刚接触Git&#xff1f;别担心&#xff01;这篇指南将用最简单的步骤带你掌握Git核心操作&#xff0c;快速开启版本控制之旅&#xff01;✨ 1.git在win10上的下载安装 1.1.下载git 打开官方网站 Git - Downloadshttps://git-scm.com/downloads ​ ​​ 1.2.git安装 …