当前位置: 首页 > news >正文

使用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以及为何它备受欢迎&#xff1f;云原生应用和K8s的关系Kubernetes的核心概念&#xff1a;Pods、Services、ReplicaSets等部署、扩展和管理应用程序的自动化容器编排的演进&#xff1a;Docker到Kubernetes实际用例&#xff1a;企业如何受益于K8s的应用…...

mysql.mongoDb,neo4j数据库对比

#Mysql与MongoDb和Neo4j的一些对比 主要区别 MySQL&#xff1a; 1.MySQL是一种关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;广泛用于处理结构化数据。 2.它支持SQL语言&#xff0c;具备成熟的事务处理和数据一致性能力。 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提醒

前言&#xff1a;最近不知道为什么jira上的ai小助手抽风&#xff0c;一周发个几千封邮件…导致我现在都不想在邮箱里面跟找垃圾一样找消息了。实在忍无可忍&#xff0c;决定屏蔽AI小助手&#xff0c;方法很简单&#xff0c;follow me~~ 第一步&#xff1a;双击打开电脑版Outloo…...

毛玻璃 has 选择器卡片悬停效果

效果展示 页面结构 从上述的效果展示可以看到&#xff0c;页面是由多个卡片组成&#xff0c;并且鼠标悬停在卡片上时&#xff0c;会旋转用户图片并且韩式对应的用户信息框。 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 采集电压点应该在靠近负载侧。这样可以减少大电流导线导致的电压差&#xff0c;真实反应输出电压值 FB_1P21采集电路靠近芯片侧&#xff0c; 2.1&#xff0c;采集分压电路上侧为Vout Vnoise, 那么一分压就噪声就小了。假如采集电路远离芯片侧&…...

计算机视觉处理的开源框架

计算机视觉是一门涉及图像和视频分析的领域&#xff0c;有许多开源的框架和库可用于构建计算机视觉应用程序。以下是一些常见的计算机视觉开源框架及其特点&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合…...

最新AI智能创作系统源码AI绘画系统/支持GPT联网提问/支持Prompt应用

AI绘图专业设计 不得将程序用作任何违法违纪内容&#xff0c;不要让亲人两行泪 界面部分图解构&#xff1a; 前台show&#xff1a; 前端部署&#xff1a; 安装pm2管理器 点击设置 选择v16.19.1版本-切换版本 再新建一个网站 点击设置 添加反向代理-代理名称随便…...

2019架构真题案例(四十八)

系统应用集成构件统一标准的基础平台&#xff0c;在各个应用系统的接口之间数据共享和功能&#xff0c;基本原则是保证应用程序的&#xff08;&#xff09;。系统应用集成提供了四个不同层次的服务&#xff0c;最上层服务是&#xff08;&#xff09;。 独立性相关性互操作性排…...

zabbix自定义监控内容和自动发现

6 目录 一、自定义监控内容&#xff1a; 1.明确需要执行的 linux 命令 2.创建 zabbix 的监控项配置文件&#xff0c;用于自定义 key&#xff1a; 3. 在 Web 页面创建自定义监控项模板&#xff1a; 3.1 创建模板&#xff1a; 3.2 创建监控项&#xff1a; 3.3 创建触发器&#…...

导引服务机器人 通用技术条件

声明 本文是学习GB-T 42831-2023 导引服务机器人 通用技术条件. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 6 检验规则 6.1 检验项目 检验分为型式检验和出厂检验。检验项目见表2。 表 2 检验项目 序号 检验项目 技术要求 检验方法 出厂检验 型…...

今日头条文章采集ChatGPT3.5/4.0驱动浏览器改写文章软件说明文档

大家好了&#xff0c;我是淘小白~ 今天给大家介绍的软件是一个款驱动浏览器改写文章的软件&#xff0c;下面给大家做一下介绍说明&#xff1a; 一、软件语言 Python编写的&#xff0c;使用的库是selenium库 二、具体逻辑 1、整理头条文章网址&#xff0c;需要自己整理&…...

Mac系统清理工具BuhoCleaner

BuhoCleaner是一款在Mac电脑上运行的清洁软件。它的界面简洁&#xff0c;易于使用&#xff0c;能够快速扫描Mac电脑上的垃圾文件、重复文件、大型文件等&#xff0c;帮助用户清理不需要的文件&#xff0c;释放磁盘空间。 该软件的主要功能包括&#xff1a; 垃圾文件清理&…...

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" 上周已正式发布&#xff0c;此版本虽然有许多针对桌面环境的改进&#xff0c;但上游缺少的一个功能是 Canonical 主导的 Mutter 动态三层缓存。 动态三层缓存用于在需要时提升性能&#xff0c;并且已被证明有助于提高桌面渲染性能&#xff0c;…...

[论文笔记]Poly-encoder

引言 本文是Poly-encoder1的阅读笔记,论文题目为基于预训练模型的快速准确多句评分模型。 也是本系列第一篇基于Transformer架构的模型,对于进行句子对之间比较的任务,有两种常用的途经:Cross-encoder在句子对上进行交互完全自注意力;Bi-encoder单独地编码不同的句子。前…...

vs2022中配置PCL1.13.1(附带提供属性表.props文件)

1.下载安装配置PCL环境&#xff08;略&#xff09; 2.vs2022相关配置&#xff08;第一次配置时&#xff0c;不想手动配置的&#xff0c;直接看第3条&#xff0c;用我的.props属性表直接导入即可。&#xff09; 1&#xff09;新建一个C项目&#xff0c;右击项目&#xff0c;选择…...

基于共生生物优化的BP神经网络(分类应用) - 附代码

基于共生生物优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于共生生物优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.共生生物优化BP神经网络3.1 BP神经网络参数设置3.2 共生生物算法应用 4.测试结果…...

GIN框架路由的实现原理

文章目录 首先回顾一下gin框架的路由如何使用的从源码分析一下gin框架gin的路由实现前缀树前缀树的实现压缩前缀树--Radix TrieTrie VS Map 首先回顾一下gin框架的路由如何使用的 package mainimport ("fmt""github.com/gin-gonic/gin""net/http&quo…...

Android Studio版本升级后的问题 gradle降级、jdk升级

Cannot use TaskAction annotation on method IncrementalTask.taskAction$gradle_core() because interface org.gradle.api.tasks.incremental.IncrementalTaskInputs is not a valid parameter to an action method. 修改下面两处地方分别为7.0.3、7.3.3Android Gradle plu…...

浏览器插件开发爬虫记录

常用爬虫有各种各样的反爬限制&#xff0c;而如果是小数据量并且该网站反爬手段非常厉害的前提下&#xff0c;可以考虑使用浏览器插件作为爬虫手段 基本代码来源于这位博主分享的插件代码&#xff0c; 主要在他的基础上加了 请求代理、管理面板、脚本注入拦截到的请求数据和管…...

万万没想到,我用文心一言开发了一个儿童小玩具

最近关注到一年一度的百度世界大会今年将于10月17日在北京首钢园举办&#xff0c;本期大会的主题是“生成未来&#xff08;PROMPT THE WORLD&#xff09;”。会上&#xff0c;李彦宏会做主题为「手把手教你做AI原生应用」的演讲&#xff0c;比较期待 Robin 会怎么展示。据说&am…...

SQL sever中的视图

目录 一、视图概述&#xff1a; 二、视图好处 三、创建视图 法一&#xff1a; 法二&#xff1a; 四、查看视图信息 五、视图插入数据 六、视图修改数据 七、视图删除数据 八、删除视图 法一&#xff1a; 法二&#xff1a; 一、视图概述&#xff1a; 视图是一种常用…...

如何理解数据序列化

数据序列化是一个将数据结构或对象状态转换为一个可以存储或传输的格式的过程。序列化后的数据可以存放在文件中、数据库中或通过网络传输。反序列化是将序列化数据恢复为原始数据结构或对象的过程。 数据序列化格式可以理解为一种约定或规范,它定义了如何表示和编码数据以便…...

07_项目开发_用户信息列表

1 用户信息列表内容展示 用户信息列表&#xff0c;主要完成用户信息的添加、删除、修改和查找功能。 用户列表页面效果&#xff1a; 单击“添加用户”按钮&#xff0c;进入添加用户页面。 填写正确的信息后&#xff0c;单击“添加用户”按钮&#xff0c;会直接跳转到用户列表…...

flutter ios打包

在 Flutter 中打包 iOS 应用程序分为两步&#xff1a; 生成 iOS 项目文件 在 Flutter 项目根目录下执行以下命令&#xff1a; flutter create --ios-language swift .这个命令会在当前目录下生成 iOS 项目文件&#xff0c;并且默认使用 Swift 语言编写。 使用 Xcode 打包 …...