当前位置: 首页 > 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单独地编码不同的句子。前…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...