使用kubectl连接远程Kubernetes(k8s)集群

使用kubectl连接远程Kubernetes集群

  • 环境准备
  • 下载kubectl
    • 下载地址
  • 安装kubectl并处理配置文件
    • Windows的安装配置
      • 安装kubectl
      • 拉取配置文件
    • Mac的安装配置
      • 安装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的这台主机了:
在这里插入图片描述

Mac的安装配置

安装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的命令自动补全了:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

钢筋智能测径仪 光圆与带肋钢筋均可检测!

在一个大规模、高效、连续的工业生产中&#xff0c;制造业正朝着自动化方向快速优化发展&#xff0c;这种自动化的生产需要快速、准确地分析控制生产工艺中的参数&#xff0c;超差及时提示&#xff0c;为操作工对工厂的运行和自我调节做出快速反应&#xff0c;人工操作越来越不…

源码部署lamt架构

源码部署lamt架构 lamt由apache&#xff0c;mysql&#xff0c;tomcat三者组成 文章目录 源码部署lamt架构1.准备工作1.1.配置yum源&#xff0c;关闭防火墙和selinux1.2.拉取相应源码包 2.安装apache3.安装mariadb4.安装tomcat 1.准备工作 1.1.配置yum源&#xff0c;关闭防火墙…

android之TextView自由选择复制

文章目录 前言一、效果图二、实现步骤1.OnSelectListener2.SelectionInfo类3.TextLayoutUtil类4.复制弹框的xml布局5.弹框背景Drawable6.倒三角Drawable7.复制工具类8.调用 总结 前言 根据时代进步&#xff0c;那些干产品的也叼砖起来了&#xff0c;今天就遇到一个需求&#x…

竞赛 深度学习 机器视觉 车位识别车道线检测 - python opencv

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习 机器视觉 车位识别车道线检测 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f947;学长这里给一个题目综合评分(每项满分5分) …

can的波特率/比特率

can控制器只需要进行少量的设置就可以进行通信&#xff0c;就像RS232那样。其中较难设置的部分就是通信波特率的计算。can总线能够在一定范围内容忍总线上can节点的通信波特率的偏差&#xff0c;这种技能使得can总线有很强的容错性&#xff0c;同时也降低了对每个节点的振荡器精…

golang 獲取 prometheus數據

使用github上的一個庫 1.安裝庫 go get github.com/prometheus/client_golang 2.導入 在import中導入&#xff0c;記得要在go.mod中更新一下 ------------------------------------------------------------------------------------ Address: "http://xx.xx.xx:9090…

基于IDEA集成环境---Nacos安装

Nacos服务器是独立安装部署的&#xff0c;因此我们需要下载最新的Nacos服务端程序&#xff0c;下载地址&#xff1a;https://github.com/alibaba/nacos。 将文件进行解压&#xff0c;得到以下内容&#xff1a; 直接将其拖入到项目文件夹下&#xff0c;便于我们一会在IDEA内部…

SAP router的问题 dev_out 大文件 ,bat 关闭服务,删除文件,重启服务

跟老师确认后&#xff0c;dev_out可以删除 具体时先把sap-router停掉&#xff0c;删除dev_out 重启服务 问题&#xff1a; 1、问题是saprouter 不能停止&#xff0c;停止的话 外网都要用VPN&#xff0c;那就避开高峰时间 可以后半夜搞这个事情 2、如何定时执行 &#xff…

格式转换 ▏Python 实现Word转HTML

将Word转换为HTML能将文档内容发布在网页上&#xff0c;这样&#xff0c;用户就可以通过浏览器直接查看或阅读文档而无需安装特定的软件。Word转HTML对于在线发布信息、创建在线文档库以及构建交互式网页应用程序都非常有用。以下是用Python将Word转换为HTML网页的攻略&#xf…

10月13日上课内容 Ansible 的脚本 --- playbook 剧本

playbooks 本身由以下各部分组成 &#xff08;1&#xff09;Tasks&#xff1a;任务&#xff0c;即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 &#xff08;2&#xff09;Variables&#xff1a;变量 &#xff08;3&#xff09;Templates&#xff1a;模…

Vue封装组件并发布到npm仓库

前言 使用Vue框架进行开发&#xff0c;组件封装是一个很常规的操作。一个封装好的组件可以在项目的任意地方使用&#xff0c;甚至我们可以直接从npm仓库下载别人封装好的组件来进行使用&#xff0c;比如iview、element-ui这一类的组件库。但是每个公司的业务场景可能不同&…

使用css 与 js 两种方式实现导航栏吸顶效果

position的属性我们一般认为有 position:absolute postion: relative position:static position:fixed position:inherit; position:initial; position:unset; 但是我最近发现了一个定位position:sticky 这个可以称为粘性定位。 这个粘性定位的元素会始终在那个位置 <st…

【网络编程】Linux网络编程基础与实战第一弹——网络基础

这里写目录标题 网络基础什么是协议典型协议 分层模型OSI七层模型TCP/IP四层模型 网络应用程序设计模式优缺点具体体现&#xff1a; 网络基础 什么是协议 从应用的角度出发&#xff0c;协议可理解为“一组规则”&#xff0c;是数据传输和数据的解释的规则。 假设&#xff0c;…

nrm,npm源的管理工具

npm手动切换淘宝源 查看当前的仓库 npm config get registry设置成淘宝源 npm config set registry https://registry.npmmirror.com/设置回官方源 npm config set registry https://registry.npmjs.org/手动切换不免不太方便&#xff0c;而且网上很多资料淘宝源还是过期的链接…

Java Spring Boot 自动装配:简化配置和提高开发效率

Spring Boot 自动装配是 Spring Boot 提供的一种特性&#xff0c;它可以根据应用程序的依赖关系和配置信息&#xff0c;自动配置应用程序的各种组件和功能。这样&#xff0c;开发者可以将更多的精力放在业务逻辑的实现上&#xff0c;而不需要手动配置和管理各种组件。 1. 自动…

webpack 3 + Vue2 使用dotenv配置多环境

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、dotenv二、使用步骤1.引入库2.添加.env文件3.修改代理配置4.vue文件中如何使用环境变量 总结 前言 webpack 3 Vue2 使用dotenv方式配置多环境 一、dotenv…

使用dateutil的parser.parse()格式化时间对象

使用dateutil的parser.parse()格式化时间对象 问题背景 由三种字符串格式的时间 datetime 类型&#xff0c;t1 “2023-10-03 17:56:32”date 类型&#xff0c;t2 “2023-10-03”time 类型&#xff0c;t3 “17:56:32” 需求 想要把这三种格式的字符串转换为时间对象&…

P7929 [COCI2021-2022#1] Logičari

P7929 [COCI2021-2022#1] Logičari [P7929 COCI2021-2022#1] Logičari - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 文章目录 P7929 [COCI2021-2022#1] Logičari题目大意思路code 题目大意 给定一棵 n n n 个节点的基环树&#xff0c;现在对树上的节点染色&#xff0c…

为了方便,采用数据库连接池druid

采用数据库连接池听说效率高,想想按原理来说也是。不过对于初学者或兴趣爱好者,它最大的好处在于在各种数据库中间切换方便。开发环境可以用自己熟悉的数据库,生产环境中切换到实际要用的数据库,毕竟我们平时用的很多软件应该有版权问题,当然不用微软软件的人员没有这个困…

UE4和C++ 开发-C++与UMG的交互2(C++获取UMG的属性)

1、...C获取UMG的属性 1.1、第一种方法&#xff1a;通过名称获取控件。 void UMyUserWidget::NativeConstruct() {Super::NativeConstruct();//通过名字&#xff0c;获取蓝图控件中的按钮引用。CtnClic Cast<UButton>(GetWidgetFromName(TEXT("Button_44"))…