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

news2024/12/29 8:50:32

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

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

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

相关文章

Centos7使用nginx搭建rtmp流媒体服务器

为什么写这篇文章 2023年10月份&#xff0c;公司系统中有个需求&#xff0c;需要使用摄像头记录工程师在维修设备时的工作状态&#xff0c;找到了一家做执法记录仪的厂商&#xff0c;通过厂商发过来的文档了解到该执法记录仪支持通过rtmp协议推流至服务器&#xff0c;第一次接…

redis 管道 pipeline

原生批量命令 VS pipeline 原生批量命令是原子性&#xff08;mset、mget&#xff09;&#xff0c;pipeline是非原子性原生批量命令一次只能执行一种命令&#xff0c;pipeline支持批量执行不同的命令原生批命令是服务端实现&#xff0c; pipeline 需要服务端与客户端共同完成 …

锁降级 ReentrantReadWriteLock

锁降级 ReentrantReadWriteLock 所谓降级&#xff0c;可以通过一个例子理解&#xff0c;一般都是写的权限大&#xff0c;读的权限小&#xff0c;从写到读自然是降级&#xff0c;这是通俗的理解。 锁降级&#xff1a;同一个线程先获取写锁&#xff0c;在写锁未释放的情况下&…

零编程开发数据可视化大屏须知

随着综合分析多业务系统数据能力的提升&#xff0c;以及将复杂数据可视化效果的加强&#xff0c;数据可视化大屏越来越受到各行各业的喜爱&#xff0c;经常可以在各类博览中心、会议中心、监控中心场合中看到它们的身影。这些数据可视化大屏或用于展示企业经营实力&#xff0c;…

指定加拿大|环境科学老师获阿尔伯塔大学邀请函

U老师入选了省公派出国项目&#xff0c;其指定加拿大&#xff0c;并要求专业为世界排名领先&#xff0c;或者是能填补国内科研和技术空白的短板学科。我们利用广泛资源&#xff0c;开展精准申请&#xff0c;先后得到多所大学反馈&#xff0c;并获得4所大学的邀请函&#xff0c;…

【pytorch】多GPU同时训练模型

文章目录 1. 基本原理单机多卡训练教程——DP模式 2. Pytorch进行单机多卡训练步骤1. 指定GPU2. 更改模型训练方式3. 更改权重保存方式 摘要&#xff1a;多GPU同时训练&#xff0c;能够解决单张GPU显存不足问题&#xff0c;同时加快模型训练。 1. 基本原理 单机多卡训练教程—…

AWS AD Connector 的网络配置

配置 AWS 的 AD Connector 通常遇到的都是些网络问题,且 AD Connector 本身屏蔽了一些网络细节,使得查找root cause往往有点困难,本文就把 AD Connector 网络问题梳理一下。 首先,需要搞清楚的是:AD Connector 是 Microsoft Active Directory 的一种代理,IAM可以通过它联…

如何用CRM客户管理系统有效管理客户

客户是企业重要的收益来源和可持续发展的基础&#xff0c;客户转化和留存率时刻影响着企业的发展。企业要实现更多客户转化&#xff0c;就要科学有效地管理客户。下面说说CRM客户管理系统如何有效管理客户&#xff1f; 一、多渠道获取客户 CRM系统能够帮助企业进行多渠道沟通…

充气膜结构的应用领域

由于充气膜结构具有丰富多彩的造型&#xff0c;优异的建筑特性、结构特性和适宜的经济性等其他传统建筑无法比拟的优势&#xff0c;因此备受人们青睐&#xff0c;被应用于工业、民用、军事等许多领域中&#xff0c;具有广阔的应用前景。 充气膜结构的主要应用领域包括&#xff…

Java另一棵树的子树

目录 1.题目描述 2.题解 思路分析 具体实现 完整代码 1.题目描述 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 二叉树 tree 的一棵子树包括…

笔记本外接显示器,edge浏览器播放视频黑屏

记录一下解决的办法 笔记本&#xff1a;联想拯救者R720 外接显示器后&#xff0c;用Edge在B站看视频有时会黑屏 网上搜了一圈&#xff0c;可能是因为笔记本连到了集显导致的 查看了一下显示器&#xff0c;确实连的是集显&#xff0c;找了联想客服&#xff0c;说这个是默认的&a…

若依微服务前后端部署启动流程(只记录)

若依官网&#xff1a;https://www.ruoyi.vip/ 若依源码下载&#xff0c;直接zip既可&#xff1a;RuoYi-Cloud: &#x1f389; 基于Spring Boot、Spring Cloud & Alibaba的分布式微服务架构权限管理系统&#xff0c;同时提供了 Vue3 的版本 下载解压&#xff0c;导入 idea&…

【已验证】微信小程序开发-绑定数据23.10.09

四. 绑定数据 WXML页面里的动态数据都是来自.js 文件Page的data&#xff0c;数据绑定就是通过双大 括号&#xff08;{{}}&#xff09;将变量包起来&#xff0c;在WXML页面 里将数据值显示出来。 <!--pages/product/product.wxml--> <view> {{ message }} </vi…

tortoise创建本地仓库

1.安装git和tortoise 推荐 TortoiseGit的安装与配置方法 以及 Git TortoiseGit 配置步骤以及本地版本管理 这里记录一下我遇到的问题 1.右键没有创建本地版本库 2 .创建了但是克隆不了 后续专有 一般选专有网络 注意自行谨慎选择 自行负责

6.Docker搭建RabbitMQ

1、端口开放 如果在云服务上部署需在安全组开通一下端口&#xff1a;15672、5672、25672、61613、1883。 15672(UI页面通信口)、5672(client端通信口)、25672(server间内部通信口)、61613(stomp 消息传输)、1883(MQTT消息队列遥测传输)。 2、安装镜像 docker pull rabbitmq 3、…

【ARM CoreLink 系列 6 -- DMC-400控制器简介】

文章目录 1.1 DMC-400 简介1.1.1 DFI&#xff08;DDR PHY Interface&#xff09;1.1.2 DFI 接口组1.1.3 DMC-400 兼容协议1.1.4 DMC-400 特性1.1.5 DMC-400 Interface 1.1 DMC-400 简介 DMC-400是一个由ARM开发、测试和授权的动态内存控制器&#xff0c;同时 DMC-400也是一个符…

jmeter使用csv进行参数化及(运行后出现乱码错误解决)

目录 jmeter使用csv进行参数化 1、准备参数化文本内容&#xff1a;mac没有自带的txt文本编辑器&#xff0c;笔者是在word中新建的然后保存成txt文档 2、进入jmeter中&#xff0c;在线程组中右键添加--配置元件--csv数据文件设置 3、将设置的变量配置到运行脚本中 4、进入线…

InfiniBand网络带宽从SDR、DDR、QDR、FDR、EDR、HDR到NDR发展

InfiniBand&#xff08;直译为 “无限带宽” 技术&#xff0c;缩写为IB&#xff09;是一个为大规模、易扩展机群而设计的网络通信技术。可用于计算机内部或外部的数据互连&#xff0c;服务器与存储系统之间的直接或交换互连&#xff0c;以及存储系统之间的互连。 InfiniBand最重…

部署zabbix监控服务器(第七课)

部署zabbix监控服务器(第七课) 图解 Zabbix是一个开源的网络监控及报警平台&#xff0c;它可以检测并收集各种系统的性能数据&#xff0c;包括网络设备、服务器、应用程序和虚拟机等&#xff0c;并提供可视化的监控报告&#xff0c;帮助用户发现系统问题并进行及时处理。以下是…

Linux虚拟机克隆之后使用ip addr无法获取ip地址

Linux虚拟机克隆之后使用ip addr无法获取ip地址 因为克隆得到的虚拟机&#xff0c;与原先的linux系统是一模一样的包括MAC地址和IP地址。需要修改信息。 设置IP地址&#xff1a; 使用vi命令打开linux的网卡 //ifcfg-enth0是虚拟网卡的名称&#xff0c;如果你的不叫这个名字&a…