Mac和Windows下 idea连接k8s集群详解

2023-11-03

设备版本:

1、k8s-server:v1.21.2

2、k8s-client:v1.19.3

3、ktConnect:0.3.6(自测发现Mac不受版本影响)

4、idea:2022.2.3 (不影响)

5、Mac:10.15.7

备注:查看方式 kubectl version、ktctl -v

配置kubectl

目的:本地可以直接控制k8s集群

1、下载kubectl

# 官网地址:https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-macos/
# 安装最新版本
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"

如果需要指定版本,使用下面指令:

# 说明:如果需要下载某个指定的版本,用该指定版本号替换掉命令的这个部分:
$(curl -L -s https://dl.k8s.io/release/stable.txt)。 
# 例如:要为 Intel macOS 系统下载 v1.25.0 版本,则输入:
curl -LO "https://dl.k8s.io/release/v1.25.0/bin/darwin/amd64/kubectl"

# 对于 Apple Silicon 版本的 macOS,输入:
curl -LO "https://dl.k8s.io/release/v1.25.0/bin/darwin/arm64/kubectl"

备注:Windows下载雷同,可参考官网

2、将 kubectl 置为可执行文件:

chmod +x ./kubectl

3、将可执行文件 kubectl 移动到系统可寻址路径 PATH 内的一个位置(其实就是将文件放到环境变量中):

sudo mv kubectl /usr/local/bin/kubectl 

4、验证是否安装成功

kubectl version --client

备注:还有其他安装方式不在此处讲解,上边已附官网地址

5、配置config

5.1、 在当前用户目录下创建.kube

mkdir /Users/用户名/.kube

# eg: 用户名为zhangsan
mkdir /Users/zhangsan/.kube

5.2、在k8s集群master节点,/root/.kube目录下,将config文件copy到本地,放到当前用户.kube目录下

# master节点目录地址
/root/.kube

mv config /root/.kube/

备注:Windows坏境下,也是将config文件放到当前用户目录下的/.kube目录下

6、验证是否可以操作k8s集群

kubectl get pods 

配置kt

目的:创建本地与k8s集群通道,可以相互调用,调试代码,但是大多数场景还是本地连接集群较多,此处只讲解从本地到集群的”单向VPN“,如需想了解其他(Exchange/Mesh/Preview),请在评论区留言,本人再分享一篇专辑

1、下载ktctl

# 官网地址:https://alibaba.github.io/kt-connect/#/zh-cn/guide/downloads
$ curl -OL https://github.com/alibaba/kt-connect/releases/download/v0.3.6/ktctl_0.3.6_MacOS_x86_64.tar.gz

2、解压

tar zxf ktctl_0.3.6_MacOS_x86_64.tar.gz

3、配置ktctl

mv ktctl /usr/local/bin/ktctl

4、验证是否安装成功

ktctl --version

5、启动ktctl

sudo ktctl -n 命名空间 connect
eg:
sudo ktctl -n test connect

6、请求验证

Windows有一些区别,无法直接访问集群内服务,需要做代理,详情请看配置idea

# 访问集群内服务
$ curl http://<POD_IP>:<PORT> #本地直接访问PodIP
$ curl http://<CLUSTER_IP>:<PORT> # 本地直接访问ClusterIP
$ curl http://<SVC_NAME>:<PORT> #使用Service的域名访问
$ curl http://<SVC_NAME>.<namespace_name>:<PORT> #本地访问带有命名空间的service
$ curl http://<svc_NAME>.<namespace_name>.svc.cluster.local:<port> #集群dns解析访问

验证结果:如果可以访问到,则说明配置没有问题,如果访问不到,请看核心步骤

核心步骤

检测完kubectl与ktctl版本没有问题后,如果本地还是无法连接到k8s集群,则是DNS缓存的问题,此时执行一下命令,清除缓存,再重新连接(Windows不存在此情况)

# 版本:Mac OS X 12 (Sierra) and later:
sudo killall -HUP mDNSResponder
sudo killall mDNSResponderHelper
sudo dscacheutil -flushcache

# 版本:Mac OS X 11 (El Capitan) and OS X 12 (Sierra):
sudo killall -HUP mDNSResponder

# 版本:Mac OS X 10.10 (Yosemite), Versions 10.10.4+:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

配置idea

这个要分Mac和Windows来说明:

1、Mac:

在本人自测场景下,idea无需配置代理,可直接访问到集群内服务;

原因:本人推测,由于配置了环境变量,做了全局代理,当站点请求集群内部服务时,也会通过VPN隧道;

有不同见解,请在评论区留言,欢迎探讨

2、Windows:

需要在启动项目前,配置代理IP和代理端口,否则无法访问到集群内部服务

1、操作如下,需要在idea启动参数中配置如下代理

VM options:-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=2223

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mac和Windows下 idea连接k8s集群详解 的相关文章

  • 在 MacOSX10.6 上运行 python 服务器时 MySQLdb 错误

    运行我的服务器 python manage py runserver 产生以下错误 django core exceptions ImproperlyConfigured 加载 MySQLdb 模块时出错 没有名为 MySQLdb 的模块
  • Kubernetes 的调度器是如何工作的?

    Kubernetes 的调度器是如何工作的 我的意思是说Kubernetes的调度器看起来很简单 我最初的想法是这个调度器只是一个简单的准入控制系统 而不是真正的调度器 是这样正确的吗 我找到了一个简短的描述 但信息并不丰富 kuberne
  • Mac OS X 下的 JavaFX:系统菜单和模态窗口

    我目前面临 Mac OS X 下的 JavaFX 菜单和模式对话框的问题 我正在使用该方法 MenuBar setUseSystemMenuBar true 为了将系统菜单栏用于我的应用程序菜单 这工作正常 但如果模式对话框打开 菜单不会被
  • 最近打开的应用程序[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有什么方法可以获取最近打开的应用程序 例如 4 个 的列表吗 如果是这样 怎么办 可可麦克 看看LaunchServices LSSh
  • QFileSystemModel setRootPath

    我正在尝试创建一个 Qt 应用程序来显示文件夹 Mac OS 中的 Users 文件夹 的内容 这是代码 QFileSystemModel dirModel new QFileSystemModel dirModel gt setRootP
  • 找不到 Kubernetes 持久卷挂载

    我正在尝试创建并安装卷 但陷入困境 这部分创建存储 apiVersion v1 kind PersistentVolumeClaim metadata name pvclaim2 spec accessModes ReadWriteOnce
  • 如何将 UILabel 的值绑定到实例变量?

    我是 mac objective c 的新手 我的问题是 我想知道是否可以将 UILabel 文本绑定到变量 而不必在值更改时手动设置文本 例如 在 Mac OS 上 当我打开新的 Finder 窗口并删除文件时 任务栏中的全局可用空间就会
  • 在 Mac 操作系统上使用 ffmpeg 录制视频

    我想在 mac OS 上使用 ffmpeg 以任何格式录制实时网络摄像头视频 我尝试了很多 但无法找到用于重新编码视频的命令 所以请任何人都可以告诉我 ffmpeg 命令用于使用 Mac 操作系统的网络摄像头捕获视频 提前致谢 对于 Mac
  • 在 MAC OS X 10.9 上安装 NLTK 确实很困难

    我是 Python Mac OS 新手 我正在寻找 NLTK 教科书 但我在安装它时遇到了一些问题 我一直在寻找解决方案 但不幸的是 所有解决方案似乎都不适合我 或者我误解了如何使用它们 我遇到的基本问题是 尽管按照说明进行操作 NLTK
  • Kubernetes - 一个 Ingress 中的多个配置

    我在同一个 Kubernetes 集群中运行不同的应用程序 我希望多个域能够访问我的 Kubernetes 集群 并根据域进行重定向 对于每个域 我想要不同的注释 配置 如果没有注释 我的入口部署如下 apiVersion networki
  • 如何在没有 Google Play 服务的情况下设置 Android 模拟器

    一位客户要求我制作一个应用程序版本 以便在没有 Google Play 服务的设备上运行 有什么方法可以告诉 Android 模拟器在不使用 GPS 的情况下运行应用程序吗 然后我可以测试代码以确保它可以在客户端设备上运行 使用不包含 go
  • 未找到证书管理器证书并且未创建挑战

    我跟着https docs cert manager io en venafi tutorials quick start index html https docs cert manager io en venafi tutorials
  • Qt:更改 Mac OS X 上的应用程序 QMenuBar 内容

    我的应用程序对多个 页面 使用 QTabWidget 其中顶级菜单根据用户所在的页面而变化 我的问题是 尝试重新创建菜单栏的内容会导致严重的显示问题 它在除 Mac OS X 之外的所有平台上按预期使用第一种和第三种样式 尚未测试第二种 但
  • Mac OS X Yosemite 中的 Node.js dtrace 错误

    我在 Mac OS X 10 10 Yosemite 上尝试使用 DTrace Node js 应用程序 sudo dtrace n profile 97 execname node arg1 jstack 150 8000 count t
  • 在 Intellij-Idea 调试器中转储一个巨大的数组

    Idea 有没有办法将一个非常大的整数数组的内容转储到剪贴板中 数组上的 复制值 不返回任何内容 要使用复制值获取剪贴板中的值 您需要定义一个 Java 数据类型渲染器 来解释数组的内容 右键单击您的数组变量 选择 查看为 gt 创建 在
  • 如何使用 Fabric8 maven 插件使用环境变量中的值指定 spring.profiles.active 参数?

    我有一个定义 ENVIRONMENT 参数的 K8s 配置映射 该值使用 src fabric8 deployment yml 中的摘录作为环境变量安装在部署 yaml 上 spec template spec containers env
  • 如何解决 xcode 一直编译所有内容的问题?

    我已经开始使用 XCode 它似乎可以工作 嗯 大部分 烦人的是它每次都会编译所有源文件 甚至是那些没有更改的文件 我正在掌握 openframeworks 每次都浪费时间编译 openframeworks 源文件 尽管它们没有改变 以下是
  • 将 Kubernetes 抓取目标添加到不在 Kubernetes 中的 Prometheus 实例

    I run 普罗米修斯 https prometheus io 本地为 http localhost 9090 targets docker run name prometheus d p 127 0 0 1 9090 9090 prom
  • Docker 容器与主机网络的网络性能非常慢

    我遇到了 Docker 容器和主机网络之间网络性能缓慢的问题 我在 Docker 论坛上提出了这个问题 但到目前为止还没有收到答案 Problem 设置 同一本地网络上的两台 Mac 第一个运行 MQTT 代理 mosquitto 第二个运
  • 在 Intellij IDEA 12 中创建 Maven 项目,但始终位于“加载原型列表”页面

    我在IntelliJ IDEA 12中创建了一个Maven项目 完成项目名称并按 下一步 现在它显示了GroupId ArtifactId和Version 但 Maven 原型并没有出现 它说 正在加载原型列表 我可以按 完成 但创建的项目

随机推荐

  • Visual Studio 2015 的安装和使用

    VS2015 是现在微软公司最新也是最强大的IDE 可以开发C C VB Android iOS等多种语言和平台的应用程序 而且 对应的免费版本VS2015 社区版 也出来了 如果只是为了初学或者是想尝试一下VS的同学 可以下载VS2015
  • 网络工程师干货:华为设备故障管理命令大全

    alarm 系统视图 命令功能 alarm命令用来进入告警管理视图 命令格式 alarm 使用实例 进入告警管理视图
  • selenium处理网页下拉加载数据爬取并存入excel

    前言 之前有个同学询问我是否能够爬取知乎的全部回答 当初只会Scrapy无法实现下拉的数据全部加载 后来在意外中接触了selenium的自动化测试 看出了selenium的模拟能力的强大 而昨天有个同学问我能否爬取中国工商银行远程银行的精彩
  • 编译ROS PCL工程时出现找不到包的问题

    编译PCL工程时 如果出现类似这样的问题 Add the installation prefix of visualization to CMAKE PREFIX PATH or set 则意味着编译器找不到相关包 则我们可以通过添加 fi
  • 基于qt的人脸识别

    文章目录 前言 一 Ubuntu中运行效果 二 代码部分 1 工程结构 2 camera代码 移植到linux板子上面的思路 前言 提示 这里可以添加本文要记录的大概内容 今天准备用qt做一个人脸识别功能 同时看能不能移植到板子上面 提示
  • 电子电路技术基础之频率响应

    电子电路技术基础之放大电路的频率响应 文章目录 电子电路技术基础之放大电路的频率响应 前言 一 频率响应概述 基本概念 二 波特图 总结 前言 郑老师模电课听课笔记 23 一 频率响应概述 基本概念 高通电路 传输特性 下限截止频率 最大值
  • 如何理解Adam算法(Adaptive moment estimation)?

    作者 薰风初入弦 链接 https www zhihu com question 323747423 answer 790457991 来源 知乎 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 文章和论文看不懂 通常有
  • QT问题解决: multiple definition of XXX

    参考这个链接的https blog csdn net liyuefeilong article details 44071053方法处理后 问题还是存在 打开 pro文件 SOURCES 下发现某个Cpp文件重复了 这个是添加已存在文件时I
  • 剪贴板在当前服务器不可映射,关于rdpclip.exe进程问题 导致远程桌面剪贴板无法使用的问题...

    我们来讨论下你这句话 由于网络波动造成的不稳定 导致进行文件传输时进程中断 再次传输时则不能进行文件传输 再次传输时则不能进行文件传输 这个的意思就是网络原因导致某次文件传输失败后 整个服务就不能用了吗 我理解rdpclip exe这个服务
  • UE4 低配优化

    总结一下UE4的低配优化 1 比较快的方式 修改引擎可扩展设置 关于Scalability Setting的详细说明 https docs unrealengine com en us Engine Performance Scalabil
  • 机器学习sklearn-多项式回归

    目录 线性关系 线性模型和非线性模型 利用线性回归解决非线性问题 多项式回归 线性模型 线性关系 首先 线性 这个词用于描述不同事物时有着不同的含义 我们最常使用的线性是指 变量之间的线性关系 linear relationship 它表示
  • DirectShow对avi视频按帧设置慢放功能

    转载请标明是引用于 http blog csdn net chenyujing1234 欢迎大家提出意见 一起讨论 DirectShow对avi视频按帧设置慢放功能需要视频源支持帧操作 可以通过IMediaSeeking IsFormatS
  • 参加蓝桥杯的经历

    蓝桥杯 我参加蓝桥杯是一个巧合 我是专科生 额 过往经历就不说了 反正就是以前没好好学习然后就去专科读书了 不过也不怎么后悔 高考完成绩出来 那时候我都有点想去新东方的来着 我一个发小的姐姐学的计算机 然后工资蛮高 他家准备让他学计算机 然
  • Odd Even Linked List

    Given a singly linked list group all odd nodes together followed by the even nodes Please note here we are talking about
  • 排序算法比较图表

    一目了然
  • Python爬取招聘信息,并且存储到MySQL数据库中

    前面一篇文章主要讲述 如何通过Python爬取招聘信息 且爬取的日期为前一天的 同时将爬取的内容保存到数据库中 这篇文章主要讲述如何将python文件压缩成exe可执行文件 供后面的操作 这系列文章主要是最近研究了数据库的定时计划备份 联系
  • java多条件判断_Java中,&&与&,

    java的逻辑运算符 1 和 都是表示与 区别是 只要有一个条件不一样就是不满足 如果第一个条件就是不满足就不判断后面的条件 而 要对所有的条件都进行判断 看下面的程序 输出的是 没有报错 而将 改为 就会如下错误 Exception in
  • Flutter 通过 VS code 连接 Android 模拟器(Windows)

    环境配置 Flutterhttps flutter cn docs get started install windows Android Studiohttps developer android google cn studio VS
  • 同步和异步的区别

    同步 同步的思想是 所有的操作都做完 才返回给用户 这样用户在线等待的时间太长 给用户一种卡死了的感觉 就是系统迁移中 点击了迁移 界面就不动了 但是程序还在执行 卡死了的感觉 这种情况下 用户不能关闭界面 如果关闭了 即迁移程序就中断了
  • Mac和Windows下 idea连接k8s集群详解

    设备版本 1 k8s server v1 21 2 2 k8s client v1 19 3 3 ktConnect 0 3 6 自测发现Mac不受版本影响 4 idea 2022 2 3 不影响 5 Mac 10 15 7 备注 查看方式