Spring Cloud Kubernetes 本地开发环境调试

一、Spring Cloud Kubernetes 本地开发环境调试

上面文章使用 Spring Cloud Kubernetesk8s 环境中实现了服务注册发现、服务动态配置,但是需要放在 k8s 环境中才能正常使用,在本地开发环境中可能没有 k8s 环境,如何本地开发调试呢?

这点 Spring Cloud 官方已经考虑到了这个问题,Spring Cloud Kubernetes 项目的代码依赖于 Fabric8 Kubernetes Java 客户端,这是一个流畅的 DSL,可以使用协议与 K8s Server 进行 REST API 通信。

官方的介绍如下:

https://docs.spring.io/spring-cloud-kubernetes/reference/3.1-SNAPSHOT/kubernetes-awareness.html

整体本地开发环境构建的过程基本包括如下几步:

  • k8s master 节点的 ~/.kube/config 文件复制到本机电脑的用户目录下的 .kube 目录中。
  • 本地环境安装 kubectl 工具。
  • 本地环境安装 KT-Connect 工具
  • 使用 ktctl connect 连接 k8s 环境。

二、将 k8s 的 config 复制到本机电脑

进入到已部署好的 k8s master 节点中:

cd ~/.kube

ll

在这里插入图片描述
config 文件复制出来放到本机电脑的 C:\Users\{你的用户名}\.kube 目录下。

在这里插入图片描述

修改文件中的 clusters.cluster.serverk8s master 节点的 ip ,如果已经是,则不用修改:

在这里插入图片描述

三、部署 kubectl 工具

下载 kubectl

https://dl.k8s.io/release/v1.30.0/bin/windows/amd64/kubectl.exe

下载后,配置环境变量,在 Path 中新增一个,指向 kubectl.exe 所在目录。

验证是否正常,打开 CMD 窗口,查看 kubectl 的版本:

kubectl version --client --output=yaml

在这里插入图片描述

kubectl 会自动读取上面的 config 配置文件,所以此时可以直接查看 k8s 中的资源:

kubectl get pods -n kube-system

在这里插入图片描述

四、部署 KT-Connect

KtConnect 是一款基于 k8s 环境用于提高本地测试联调效率的小工具。

功能包括:

  • Connect:建立数据代理通道,实现本地服务直接访问 k8s 集群内网(包括Pod IPService域名)
  • Exchange:让集群服务流量重定向到本地,实现快速验证本地版本和调试排查问题
  • Mesh:创建路由规则重定向特定流量,实现多人协作场景下互不影响的本地调试
  • Preview:暴露本地服务到集群,实现无需发布即可在线预览集成效果

下载 KT-Connect ,进入下面连接,根据自己电脑系统情况,下载相应软件包,这里我下载的 Windows x86 64位

https://github.com/alibaba/kt-connect/blob/master/docs/zh-cn/guide/downloads.md

下载后,解压可以看到 ktctl.exewintun.dll

配置环境变量,在 Path 中新增一个,指向这两个文件所在目录。

以管理员身份打开 CMD 窗口,查看版本,验证是否正常:

ktctl -v

在这里插入图片描述

连接 K8s ,会自动在 k8s 中部署 kt-connect 服务。

ktctl connect

在这里插入图片描述

注意该 CMD 窗口不要关闭,关闭后会自动停掉连接。

kubectl get pods

在这里插入图片描述

五、本地环境调试

这里测试使用上篇文章实践的消费者服务,如果不清楚的可以在下面文章中找到搭建过程:

Spring Cloud 基于 K8s 原生能力实践 服务注册发现、服务动态配置

其中服务提供者需要已经部署到k8s环境中:

在这里插入图片描述

本地 IDEA 启动服务消费者,启动时,指定环境变量 KUBERNETES_NAMESPACEk8s 部署服务的命名空间,上篇文章中我们使用的 cloud

在这里插入图片描述

启动服务:

在这里插入图片描述

服务启动成功。

5.1 服务注册发现测试

调用 http://localhost:8080/discoveryInfo 查看服务信息:

在这里插入图片描述
已经能成功拿到 k8s 中的服务信息。

调用 http://localhost:8080/rpc 测试 RPC 远程调用,并且多次调用:

在这里插入图片描述
在这里插入图片描述
调用正常,并可以看到负载均衡效果。

5.2 服务动态配置测试

调用 http://localhost:8080/config 查看配置信息:

在这里插入图片描述

成功读取到 ConfigMap 中的配置信息。

尝试修改 K8s 中的配置文件:

kubectl edit configmap consumerconfig -n cloud

在这里插入图片描述

可以在 IDEA 看到触发了 restart_context 策略:

在这里插入图片描述

再次查看配置信息:

在这里插入图片描述

也已经生效,可以感觉出来和在 k8s 中几乎一样使用。

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

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

相关文章

1. 深度学习笔记--神经网络中常见的激活函数

1. 介绍 每个激活函数的输入都是一个数字,然后对其进行某种固定的数学操作。激活函数给神经元引入了非线性因素,如果不用激活函数的话,无论神经网络有多少层,输出都是输入的线性组合。激活函数的意义在于它能够引入非线性特性&am…

小程序wx.getlocation接口如何开通?

小程序地理位置接口有什么功能? 随着小程序生态的发展,越来越多的小程序开发者会通过官方提供的自带接口来给用户提供便捷的服务。但是当涉及到地理位置接口时,却经常遇到申请驳回的问题,反复修改也无法通过,给的理由…

计算机网络chapter1——家庭作业

文章目录 复习题1.1节(1) “主机”和“端系统”之间有何不同?列举几种不同类型的端系统。web服务器是一种端系统吗?(2)协议一词常用来用来描述外交关系,维基百科是如何描述外交关系的&#xff1…

十大排序算法之->插入排序

一、插入排序 插入排序的基本思想是将一个记录插入到已经排好序的有序表中,从而形成一个新的、记录数增1的有序表。 排序过程: 1、外层循环:从第二个元素开始,依次选取未排序的元素。 2、内层循环:将当前选取的元素…

【UnityRPG游戏制作】Unity_RPG项目_玩家逻辑相关

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:就业…

Typescript精进:前端必备的5大技巧(AI写作)

首先,这篇文章是基于笔尖AI写作进行文章创作的,喜欢的宝子,也可以去体验下,解放双手,上班直接摸鱼~ 按照惯例,先介绍下这款笔尖AI写作,宝子也可以直接下滑跳过看正文~ 笔尖Ai写作:…

通过自然语言处理执行特定任务的AI Agents;大模型控制NPC执行一系列的动作;个人化的电子邮件助手Panza

✨ 1: OpenAgents 通过自然语言处理执行特定任务的AI代理 OpenAgents是一个开放平台,旨在使语言代理(即通过自然语言处理执行特定任务的AI代理)的使用和托管变得更加便捷和实用。它特别适合于日常生活中对数据分析、工具插件获取和网络浏览…

【Mac】Mac安装软件常见问题解决办法

前言 刚开始用Mac系统的小伙伴或者在更新系统版本后运行App的朋友会经常碰到弹窗提示「xxx已损坏,无法打开,您应该将它移到废纸篓」、「打不开xxx,因为Apple无法检查其是否包含恶意软件」、「打不开xxx,因为它来自身份不明的开发…

Pandas入门篇(三)-------数据可视化篇3(seaborn篇)(pandas完结撒花!!!)

目录 概述一、语法二、常用单变量绘图1. 直方图(histplot)2. 核密度预估图(kdeplot)3. 计数柱状图(countplot) 三、常用多变量绘图1.散点图(1) scatterplot(2)regplot 散点图拟合回归线(3)jointplot 散点图…

【Spring 】Spring MVC 入门Ⅱ

Spring MVC 入门Ⅱ 一、接收Cookie / Session 这两者都是用来保存用户信息的,但不同的是: Cookie存在客户端 Session存在服务器 Session产生时会生成一个唯一性的SessionID,这个SessionID可以用于匹配Session和Cookie SessionID可以在Cooki…

【kettle003】kettle访问SQL Server数据库并处理数据至execl文件

一直以来想写下基于kettle的系列文章,作为较火的数据ETL工具,也是日常项目开发中常用的一款工具,最近刚好挤时间梳理、总结下这块儿的知识体系。 熟悉、梳理、总结下Microsoft SQL Server 2022关系数据库相关知识体系 3.欢迎批评指正&#xf…

ChatGPT 记忆功能上线 能记住你和GPT互动的所有内容

你和ChatGPT的互动从今天开始变得更加智能!ChatGPT现在可以记住你的偏好和对话细节,为你提供更加相关的回应。和它聊天,你可以教它记住新的东西,例如:“记住我是素食主义者,当你推荐食谱时。”想了解ChatGP…

吴恩达机器学习笔记:第 9 周-15 异常检测(Anomaly Detection) 15.1-15.2

目录 第 9 周 15、 异常检测(Anomaly Detection)15.1 问题的动机15.2 高斯分布 第 9 周 15、 异常检测(Anomaly Detection) 15.1 问题的动机 在接下来的一系列视频中,我将向大家介绍异常检测(Anomaly detection)问题。这是机器学习算法的一个常见应用。这种算法的…

Qwen-Audio:推动通用音频理解的统一大规模音频-语言模型(开源)

随着人工智能技术的不断进步,音频语言模型(Audio-Language Models)在人机交互领域变得越来越重要。然而,由于缺乏能够处理多样化音频类型和任务的预训练模型,该领域的进展受到了限制。为了克服这一挑战,研究…

ClickHouse安装(成功安装)

1.下载安装包 下面通过阿里镜像(https://mirrors.aliyun.com/clickhouse/rpm/lts/)进行下载,下载哪里,自行指定。 # deb包下载使用如下4行 wget https://mirrors.aliyun.com/clickhouse/deb/pool/stable/clickhouse-client_22.8…

图像处理的一些操作(1)

图像处理 1.安装PIL,skimage库1.1导入skimage库中的oi模块和data模块 2.读取图像文件2.1读取图像文件2.2 以灰度模式读取图像2.3 查看示例图像的目录路径2.4 读取chelsea图片2.5 加载示例图片并保存2.6 获得加载图片的信息2.6.1 输出图片类型2.6.2 输出图片尺寸2.6.…

44. UE5 RPG 初始化敌人的属性

在正常的游戏中,我们应该考虑如何去初始化角色属性,并且要给角色分好类型。比如,在我们游戏中,我们如何去初始化小兵的属性,并且还要实现小兵随着等级的增长而增加属性。而且就是小兵也有类型的区分,比如我…

Unity ParticleSystem 入门

概述 在项目的制作过程成,一定少不了粒子系统的使用吧,如果你想在项目粒子效果,那这部分的内容一定不要错过喔!我添加了理解和注释更好理解一点! Common Attribute(粒子通用属性) Duration:粒子持续的时间…

分类规则挖掘(二)

目录 三、决策树分类方法(一)决策树生成框架(二)ID3分类方法(三)决策树的剪枝(四)C4.5算法 三、决策树分类方法 决策树 (Decision Tree) 是从一组无次序、无规则,但有类别…

代谢组数据分析七:从质谱样本制备到MaxQuant搜库

前言 LC-MS/MS Liquid Chromatography-Mass Spectrometry(LC-MS/MS ,液相色谱-质谱串联)可用于残留化合物检测、有机小分子检测、鉴定和定量污染物以及在医药和食品领域添加剂检测和生物小分子等检测。 LC-MS/MS一般包含五个步骤&#xff…