使用kubectl连接远程Kubernetes(k8s)集群
使用kubectl连接远程Kubernetes集群
- 环境准备
- 下载kubectl
- 下载地址
- 安装kubectl并处理配置文件
- Windows的安装配置
- 安装kubectl
- 拉取配置文件
- 安装kubectl
- 拉取配置文件
- kubectl命令自动补全
- Linux的安装配置
- 安装kubectl
- 拉取配置文件
- kubectl命令自动补全
环境准备
你需要准备一个Kubernetes集群,你要记下你安装Kubernetes的版本。如图我已经准备好了一个版本号为 v1.21.14 的集群:

下载kubectl
下载地址
注意下载的版本号最好与你安装的Kubernetes版本对应上,各个版本的下载地址(⚠️注意修改url中的版本号):
-
Windows:
- x86_64:
https://dl.k8s.io/release/版本号/bin/windows/amd64/kubectl.exe- arm64:
https://dl.k8s.io/release/版本号/bin/windows/arm64/kubectl.exe -
MacOS:
- Intel:
https://dl.k8s.io/release/版本号/bin/darwin/amd64/kubectl- Apple Silicon:
https://dl.k8s.io/release/版本号/bin/darwin/arm64/kubectl -
Linux:
- x86_64:
https://dl.k8s.io/release/版本号/bin/linux/amd64/kubectl- arm64:
https://dl.k8s.io/release/版本号/bin/linux/arm64/kubectl
以 v1.21.14 的 MacOS M1芯片的电脑为例,我的下载地址就为(注意修改版本号):
https://dl.k8s.io/release/v1.21.14/bin/darwin/arm64/kubectl
安装kubectl并处理配置文件
本次会以MacOS、Windows、Linux三个系统为例为大家讲解。你可以在目录中快速点击你的操作系统,只看你自己的操作系统的内容即可。
Windows的安装配置
安装kubectl
因为我的Windows电脑是x86_64架构的,所以我的下载地址为(注意修改自己的版本):
https://dl.k8s.io/release/v1.21.14/bin/windows/amd64/kubectl.exe
然后我们创建一个目录去安装kubectl,如图:

每个目录的作用:
- bin: 装kubectl可执行文件的目录
- config: 配置文件的目录
接下来我们将kubectl下载到bin目录下:

然后我们可以执行下面命令查看帮助:
.\kubectl.exe --help
执行如图:

接下来我们需要配置一下环境变量,来到设置点击系统:

然后点击关于之后点击高级系统设置:

然后点击环境变量:

在环境变量下点击新建:

配置一个名为 KUBERNETES_HOME 的环境变量,值为你Kubernetes安装的根目录:

然后找到path之后将这行配置添加到最后:
%KUBERNETES_HOME%\bin
如图:

最后我们重启PowerShell就可以在任何地方执行kubectl了:

拉取配置文件
现在仅仅只是安装了kubectl,但是还没有指定kubectl去连接哪个集群。我们需要在Kubernetes主节点当中去拉取下来配置文件,这个配置文件当中一般还包含着认证信息。这个文件一般存放于主节点的 /etc/kubernetes/admin.conf 处,我们直接使用这行命令来拉取:
# 来到kubernetes的配置文件目录
cd E:\Software\Developer\Tools\Kubernetes\conf\
# 拉取配置文件,为了区分多个集群的配置文件,我们给其从新命名
scp root@192.168.1.160:/etc/kubernetes/admin.conf ./192.168.1.160.conf
拉取后如图:

然后我们需要配置一个 KUBECONFIG 环境变量名字去指向这个配置文件:

然后我们重启PowerShell就能远程工作apiserver为192.168.1.160的这台主机了:

安装kubectl
因为我的Mac电脑是M1芯片的,所以我的下载地址为(注意修改自己的版本):
https://dl.k8s.io/release/v1.21.14/bin/darwin/arm64/kubectl
然后我们创建一个目录去安装kubectl,如图:

每个目录的作用:
- bin: 装kubectl可执行文件的目录
- config: 配置文件的目录
接下来我们将kubectl下载到bin目录下:

然后我们还需要执行以下命令来为它赋予执行权限:
chmod +x kubectl
然后我们执行它(可能会被MacOS拦截,因为这个可执行文件不是来自受信任的开发者,这个问题请点击帮助按照苹果给出的文档解决):
./kubectl --help
执行如图:

这个文件我们目前还只能在本目录下执行,而我们还需要在任何位置都能执行,所以要配置环境变量。配置如下内容(注意修改你自己的安装目录):
# Set Kubernetes environment
KUBERNETES_HOME=/Users/xiaohh/Software/kubernetes
PATH=$PATH:$KUBERNETES_HOME/bin
export PATH KUBERNETES_HOME
再执行下面命令使其生效:
source /etc/profile
配置后如图,可以看到在命令行的任何位置都能使用kubectl了:

拉取配置文件
现在仅仅只是安装了kubectl,但是还没有指定kubectl去连接哪个集群。我们需要在Kubernetes主节点当中去拉取下来配置文件,这个配置文件当中一般还包含着认证信息。这个文件一般存放于主节点的 /etc/kubernetes/admin.conf 处,我们直接使用这行命令来拉取:
# 来到kubernetes的配置文件目录
cd ~/Software/kubernetes/config
# 拉取配置文件,为了区分多个集群的配置文件,我们给其从新命名
scp root@192.168.1.160:/etc/kubernetes/admin.conf ./192.168.1.160.conf
拉取后如图:

接下来我们还需要配置一个 KUBECONFIG 环境变量去指定kubectl使用哪个配置文件,在上一步的基础上优化环境变量:
# Set Kubernetes environment
KUBERNETES_HOME=/Users/xiaohh/Software/kubernetes
# 指定使用哪个配置文件的环境变量,注意后面的地址
KUBECONFIG=$KUBERNETES_HOME/config/192.168.1.160.conf
PATH=$PATH:$KUBERNETES_HOME/bin
export PATH KUBERNETES_HOME KUBECONFIG
修改后如图:

使这个文件生效,执行这行命令:
source /etc/profile
然后就可以直接在本地操作远程集群了:

kubectl命令自动补全
将下面三行添加到 /etc/profile 文件末尾:
autoload -Uz compinit
compinit
source <(kubectl completion zsh)
如图:

直接执行下面命令使其生效:
source /etc/profile
然后我们就可以使用命令补全了。
Linux的安装配置
安装kubectl
因为我的Linux虚拟机是x86_64架构的,所以我的下载地址为(注意修改自己的版本):
https://dl.k8s.io/release/v1.21.14/bin/linux/amd64/kubectl
然后我们创建一个目录去安装kubectl,如图:

每个目录的作用:
- bin: 装kubectl可执行文件的目录
- config: 配置文件的目录
接下来我们将kubectl下载到bin目录下:

然后我们还需要执行以下命令来为它赋予执行权限:
chmod +x kubectl
然后我们执行它:
./kubectl --help
执行如图:

这个文件我们目前还只能在本目录下执行,而我们还需要在任何位置都能执行,所以要配置环境变量。配置如下内容(注意修改你自己的安装目录):
# Set Kubernetes environment
KUBERNETES_HOME=/opt/environment/kubernetes
PATH=$PATH:$KUBERNETES_HOME/bin
export PATH KUBERNETES_HOME
再执行下面命令使其生效:
source /etc/profile
配置后如图,可以看到在命令行的任何位置都能使用kubectl了:

拉取配置文件
现在仅仅只是安装了kubectl,但是还没有指定kubectl去连接哪个集群。我们需要在Kubernetes主节点当中去拉取下来配置文件,这个配置文件当中一般还包含着认证信息。这个文件一般存放于主节点的 /etc/kubernetes/admin.conf 处,我们直接使用这行命令来拉取:
# 来到kubernetes的配置文件目录
cd /opt/environment/kubernetes/config/
# 拉取配置文件,为了区分多个集群的配置文件,我们给其从新命名
scp root@192.168.1.160:/etc/kubernetes/admin.conf ./192.168.1.160.conf
拉取后如图(里面有集群的apiserver地址,还有一些集群的证书和认证信息):

接下来我们还需要配置一个 KUBECONFIG 环境变量去指定kubectl使用哪个配置文件,在上一步的基础上优化环境变量:
# Set Kubernetes environment
KUBERNETES_HOME=/opt/environment/kubernetes
# 指定使用哪个配置文件的环境变量,注意后面的地址
KUBECONFIG=$KUBERNETES_HOME/config/192.168.1.160.conf
PATH=$PATH:$KUBERNETES_HOME/bin
export PATH KUBERNETES_HOME KUBECONFIG
修改后如图:

使这个文件生效,执行这行命令:
source /etc/profile
然后就可以直接在本地操作远程集群了:

kubectl命令自动补全
首先我们需要安装bash-completion,使用以下命令安装:
# ubuntu
apt-get install bash-completion
# centos
yum install -y bash-completion
然后执行bash-completion的主脚本:
source /usr/share/bash-completion/bash_completion
生成kubectl补全脚本,并执行它:
kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl > /dev/null
sudo chmod a+r /etc/bash_completion.d/kubectl
source /etc/bash_completion.d/kubectl
然后我们就可以使用kubectl的命令自动补全了:

相关文章:
使用kubectl连接远程Kubernetes(k8s)集群
使用kubectl连接远程Kubernetes集群 环境准备下载kubectl下载地址 安装kubectl并处理配置文件Windows的安装配置安装kubectl拉取配置文件安装kubectl拉取配置文件kubectl命令自动补全 Linux的安装配置安装kubectl拉取配置文件kubectl命令自动补全 环境准备 你需要准备一个Kube…...
Kubernetes革命:云原生时代的应用编排和自动化
文章目录 什么是Kubernetes以及为何它备受欢迎?云原生应用和K8s的关系Kubernetes的核心概念:Pods、Services、ReplicaSets等部署、扩展和管理应用程序的自动化容器编排的演进:Docker到Kubernetes实际用例:企业如何受益于K8s的应用…...
mysql.mongoDb,neo4j数据库对比
#Mysql与MongoDb和Neo4j的一些对比 主要区别 MySQL: 1.MySQL是一种关系型数据库管理系统(RDBMS),广泛用于处理结构化数据。 2.它支持SQL语言,具备成熟的事务处理和数据一致性能力。 3.MySQL适用于大多数传统的基于表…...
unity使用UniStorm 5.1.0.unitypackage增加天气
添加天天气组件unistorm 然后添加一个player 导入包会报错,需要修改代码 using UnityEngine; using UnityEngine.PostProcessing;namespace UnityEditor.PostProcessing {[CustomPropertyDrawer(typeof(UnityEngine.PostProcessing.MinAttribute))]sealed class MinDrawer : …...
Flink实现kafka到kafka、kafka到doris的精准一次消费
1 流程图 2 Flink来源表建模 --来源-城市topic CREATE TABLE NJ_QL_JC_SSJC_SOURCE ( record string ) WITH (connector kafka,topic QL_JC_SSJC,properties.bootstrap.servers 172.*.*.*:9092,properties.group.id QL_JC_SSJC_NJ_QL_JC_SSJC_SOURCE,scan.startup.mode …...
Outlook屏蔽Jira AI提醒
前言:最近不知道为什么jira上的ai小助手抽风,一周发个几千封邮件…导致我现在都不想在邮箱里面跟找垃圾一样找消息了。实在忍无可忍,决定屏蔽AI小助手,方法很简单,follow me~~ 第一步:双击打开电脑版Outloo…...
毛玻璃 has 选择器卡片悬停效果
效果展示 页面结构 从上述的效果展示可以看到,页面是由多个卡片组成,并且鼠标悬停在卡片上时,会旋转用户图片并且韩式对应的用户信息框。 CSS3 知识点 :has 属性的运用 实现页面整体结构 <div class"container"><div…...
[hive]解决group by 字段超过系统规定64个
用开窗函数即可 ( row_number() over(partition by col1,...,col70 oder by xx) rn ) where rn1...
生成老年人的声音sox
sox laoren1.wav laoren2.wav pitch -300...
DC2DC电源设计注意事项--1,Feedback
电源采集图如下图 Feedback 采集电压点应该在靠近负载侧。这样可以减少大电流导线导致的电压差,真实反应输出电压值 FB_1P21采集电路靠近芯片侧, 2.1,采集分压电路上侧为Vout Vnoise, 那么一分压就噪声就小了。假如采集电路远离芯片侧&…...
计算机视觉处理的开源框架
计算机视觉是一门涉及图像和视频分析的领域,有许多开源的框架和库可用于构建计算机视觉应用程序。以下是一些常见的计算机视觉开源框架及其特点,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合…...
最新AI智能创作系统源码AI绘画系统/支持GPT联网提问/支持Prompt应用
AI绘图专业设计 不得将程序用作任何违法违纪内容,不要让亲人两行泪 界面部分图解构: 前台show: 前端部署: 安装pm2管理器 点击设置 选择v16.19.1版本-切换版本 再新建一个网站 点击设置 添加反向代理-代理名称随便…...
2019架构真题案例(四十八)
系统应用集成构件统一标准的基础平台,在各个应用系统的接口之间数据共享和功能,基本原则是保证应用程序的()。系统应用集成提供了四个不同层次的服务,最上层服务是()。 独立性相关性互操作性排…...
zabbix自定义监控内容和自动发现
6 目录 一、自定义监控内容: 1.明确需要执行的 linux 命令 2.创建 zabbix 的监控项配置文件,用于自定义 key: 3. 在 Web 页面创建自定义监控项模板: 3.1 创建模板: 3.2 创建监控项: 3.3 创建触发器&#…...
导引服务机器人 通用技术条件
声明 本文是学习GB-T 42831-2023 导引服务机器人 通用技术条件. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 6 检验规则 6.1 检验项目 检验分为型式检验和出厂检验。检验项目见表2。 表 2 检验项目 序号 检验项目 技术要求 检验方法 出厂检验 型…...
今日头条文章采集ChatGPT3.5/4.0驱动浏览器改写文章软件说明文档
大家好了,我是淘小白~ 今天给大家介绍的软件是一个款驱动浏览器改写文章的软件,下面给大家做一下介绍说明: 一、软件语言 Python编写的,使用的库是selenium库 二、具体逻辑 1、整理头条文章网址,需要自己整理&…...
Mac系统清理工具BuhoCleaner
BuhoCleaner是一款在Mac电脑上运行的清洁软件。它的界面简洁,易于使用,能够快速扫描Mac电脑上的垃圾文件、重复文件、大型文件等,帮助用户清理不需要的文件,释放磁盘空间。 该软件的主要功能包括: 垃圾文件清理&…...
SpringBoot集成WebSocket讲解
文章目录 1 WebSocket1.1 简介1.2 WebSocket作用和调用1.2.1 作用1.2.2 js端调用 1.3 Javax1.3.1 服务端1.3.1.1 服务端接收1.3.1.2 服务端集成1.3.1.3 ping和pong消息 1.3.2 客户端1.3.2.1 客户端接收1.3.2.2 客户端发送 1.4 WebMVC1.4.1 服务端1.1.4.1 服务端接收1.1.4.2 服务…...
GNOME 45 动态三层缓存补丁更新
导读GNOME 45 "Rīga" 上周已正式发布,此版本虽然有许多针对桌面环境的改进,但上游缺少的一个功能是 Canonical 主导的 Mutter 动态三层缓存。 动态三层缓存用于在需要时提升性能,并且已被证明有助于提高桌面渲染性能,…...
[论文笔记]Poly-encoder
引言 本文是Poly-encoder1的阅读笔记,论文题目为基于预训练模型的快速准确多句评分模型。 也是本系列第一篇基于Transformer架构的模型,对于进行句子对之间比较的任务,有两种常用的途经:Cross-encoder在句子对上进行交互完全自注意力;Bi-encoder单独地编码不同的句子。前…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
