日常工作中,可能需要在自己的笔记本电脑上执行 kubectl 命令以管理远程 Linux 服务器上的 Kubernetes 集群。通过调用 kubernetes API 来实现对 Kubernetes 对象的操作.

在客户端电脑安装 kubectl

Linux

# cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF # yum install -y kubectl
# kubectl version

Windows

从下面的链接下载 kubectl 可执行文件
https://storage.googleapis.com/kubernetes-release/release/v1.16.2/bin/windows/amd64/kubectl.exe 请将其中的 v1.16.2 替换为最新的版本号
通过此链接可获取最新的版本号 https://storage.googleapis.com/kubernetes-release/release/stable.txt 将下载的可执行文件添加到 PATH 环境变量 执行命令查看已安装的 kubectl 版本号
kubectl version

MAC

# 下载最新的可执行文件
curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl"
# 添加可执行权限
chmod +x ./kubectl
# 复制到 PATH 路径
sudo mv ./kubectl /usr/local/bin/kubectl
# 检查已安装版本
kubectl version

获取 kubectl config 文件

在master节点上执行如下命令查看:

# cat /etc/kubernetes/admin.conf   (或者这个路径:~/.kube/config) (或者直接使用命令查看:kubectl config view --raw)
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN5RENDQWJDZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJd01EVXlOekExTXpJeE1Gb1hEVE13TURVeU5UQTFNekl4TUZvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBT1JPCllMMzNKa1lBaElFS2s1ajMxT29PSVpHM0ZPbUV2Y1NlRmhjVFRZTnhRZXEwSE1BWVBvRE54N05pVElGRytwRkwKSGo3OE1IMlFYbGgyQUk5ZFpseHVoUnoydjNVa1VqMVpaNk5ZMTlWc21sZFBGR3gxVEJpRVgyMVl2Y05HbzhYegoydWlnY2dNcDVNbEhoZEc5UHdIaW5HRjYxbDFYRVdnZnB3c0N6aDMrWVZINmhGUnlsbWpha2QvbDIrVmNTK1IvCkxQMjluaTBXVkk3VmhacXpuUW81UklCcGpZUlRHQ0VtWU95M0l1Y250OGdQekpDcUFpN21razhCWlZYY1NoQW4KRjVRODBBRXQ5N01sRmJtVHJ2L1RwNzYvVlVPQ3Z2UlJxMGxrMWlpeHZWUS9vRXJOSExzTHNvOEt2a3ZBMnRRbwpvWlU1ME51VVp3Q3FOMFJUR1k4Q0F3RUFBYU1qTUNFd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFMQTlzM3VmVnFzNm9pQ0lsZy9aK3lHSVZOSXAKazdSNDNKWWgweGVtQk9RZ2RiM0JmQm1iMnRxZER6a3JOUjhwTS9nejFDK1VkcEdGMGd0clFJb2RaTEJEcmtDWApYVm9qd0NMQ3ZMdEtQcTZkcEZJM09Jdi91bXkrVUxIbGtOMUk2MjRCVkMzWnZuRUUreGFRdDBxVXY2OXlzeDM1CjlrUTdXMndvQjRvbDJPaURJOHJ6dVJkTk9kZGYwMG9iYkJSQkFjbnZvdys3M0RodnBOb0srd3Z2OHAvUFBSUlQKOC9YN0pEc2dpcUdNbUhUdUlBbzV0SDBwS0dFaEw5TFNaY0x3Y0FtUUZMTzJwVHpRL1VMcUhaMlAzRFVtaWJNTwpiOXpFWG80VmNEdjFUZzhSR3RKcnE4UGloQU1TUTcwT0ZHbUh6KzU1MXh1T1p0OVdVZk9wQ3RSYzJ3az0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
server: https://apiserver.master:6443 # 注意这个地址,master节点上的api地址
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: kubernetes-admin
name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
user:
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM4akNDQWRxZ0F3SUJBZ0lJQ2tycEFwb202d0F3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TURBMU1qY3dOVE15TVRCYUZ3MHlNVEExTWpjd05UTXlNVEphTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXR1aWxHd2xZZU9sNzRpTjMKVzl1eXFKK2F4NzVUeWNIUnNRR0ZMUnB3YWRvTktmQmpuQS9DZjFIVkYyVmxjVGVLWHNQTWp3ZzdoT1E2b25vTgpxOXhWK0J0RUYyVFgwOFRxRU5aRERFblcxOFJZU2dqMkxuem5WUUhkbWp4Y3JQbzlIa0N4RWpsWXFzbWxSYUdJCm53Yjd2Q2hLbGlPU1lxaHUwZ0x6bW9yNGNhdWFCbFdLV1FCbzNnQ0pPd0V4Y3JoT3JxYS80Zk1vSThmd1ppYTgKVnpTQ0xPK3N3eUphdmtQRFJpYWE1dmlXektXOFE1ODh2RjBuekNsdEh1SGlSdjczOVowVUpoYlQrVnN0bWZKagpUVVpQaks1S21teDd0SkJlMVIwSW9nejVTaTJTcE5OdmpBbUlrcXAxUlljaWMzQzBXZ2FZRWtLeDlRTFVxRm52CldvMmdHd0lEQVFBQm95Y3dKVEFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFIRDBZY2RhTVFrVnMyVDFEcytlMnAvcS9zcWtBV3Z0REpyQgpicTA3WmhEM0haNzhwTWJjQVZiM3dmYmdVSi9DZzh1bzdmSzdHbzlMNm1SV21LQlhhVVVENUNMRHNUcXZ6OVpSCkpSWTNDRVNxMXhDWWUvRklYMVp2TnNnNHVwZ1M4UGo0NVB5TC9oTXhncFRWOWRkYm5HbUNHdkJtU0ZSVVZ5a2IKTVZOSDRoZ3ZmZDlXRHRqUERycDZvMUhhQjVBR1FIQ0wrRnU1TmJEeFJjNTFwVktHUG9pbmE0dWdwYkJJMU1SZQpjVDEzaGR3WVNoMlMvWmlVOGhnTW5vQTNKNmdlWG1iYUxRZk91bUJZYWNVSkZ3VkpLc1p1UHlMVVZLelp2YUJWCk9lQ29CMHIxb0ZFKzAwMGNTcFBWRHR3YXJ4ZTRWbkMvQ2IzY3BTSmZhR3h5eGMyZkdxQT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBdHVpbEd3bFllT2w3NGlOM1c5dXlxSitheDc1VHljSFJzUUdGTFJwd2Fkb05LZkJqCm5BL0NmMUhWRjJWbGNUZUtYc1BNandnN2hPUTZvbm9OcTl4VitCdEVGMlRYMDhUcUVOWkRERW5XMThSWVNnajIKTG56blZRSGRtanhjclBvOUhrQ3hFamxZcXNtbFJhR0lud2I3dkNoS2xpT1NZcWh1MGdMem1vcjRjYXVhQmxXSwpXUUJvM2dDSk93RXhjcmhPcnFhLzRmTW9JOGZ3WmlhOFZ6U0NMTytzd3lKYXZrUERSaWFhNXZpV3pLVzhRNTg4CnZGMG56Q2x0SHVIaVJ2NzM5WjBVSmhiVCtWc3RtZkpqVFVaUGpLNUttbXg3dEpCZTFSMElvZ3o1U2kyU3BOTnYKakFtSWtxcDFSWWNpYzNDMFdnYVlFa0t4OVFMVXFGbnZXbzJnR3dJREFRQUJBb0lCQUREdU01eno5eE1CZ3Y2UAo5bEpBaDU3TWM1K1RydDUrVnhZL0RkMXZBVHVQOVkyT25WY1djRFdYTXFZN25kT1h4QkJ0Mkw4NnVKRm9iTGNpClo1M2VKN0ZqdWVkNE5yU1VMUG1zRit1bHBTKzdldEx6YXNnczZjVzM1Z3hvc1hJa3owelVpWW9TaFVITEI4ZUUKMndPUDNyQUxKMGphNDBJNVJNd3h0ZkZWMC9pME4yOWhvVElSQ1RXMW80OTFONEpva3pmaE84RHEyN0w1T3UxNQprdm94YisvK0lkZStad3BHVW1DQ0U2dElhUzRUWkxmcllOUXdMZVN0Mm9uTzZpS1pjQlJWV1RzaW1IdmFDYVMrCngxOGkvWWd2elJEYmVsd1BYZHhwbHNTMVdLVE5uaFlEM1lFakVmczhBc014a2ZlN0NFQWRFQTNnR3ZIa0d4N24KQVpWb3FBRUNnWUVBenQ0ZmFlbFVuV0tSM2Y1a1pYZlRoN0x3N2lOSFFvbEE5T3Bsb2hsaFdrbmdJRVRNM2RTawpRN0phbjNwYjRZOWdvNE9YZFVQaXg5UW5mMHdYZkNvUTFXN2lVOFdYaGVUUTlUcFJ5em9PdzJPWlMxR2Rxcm90CldnQjluWU5DZWV1STRJNlNGRzRoTFZITWwrMEFvcFJ0Sy9VVFpPSldtMHAyYkNWVlE5YmhzeHNDZ1lFQTRsbkkKcWFQTDN3SXg5d2llVkpuQ3dxZUoyQVY3U3ZqbWMybXk5aGMySUJrT3RFek5BZVdEdnNxVGp0TXNyUGV5dnNFVQpqenNFeFMwcGUzZHJpOE9EdkZpQ0lid3pGcnVNYXZqaDVGUEgrcnprVTFLNnJWc3pnV3E4N1JvTzdtM3B2K0JnCkJ1RHIvWmV3Z3VKY3VKL05ZNnNpK1kzMHVJcm56UnFjN21LRmx3RUNnWUIvT3FmUmFOdE1yTm9QMGEwSHB3bm4KTk12dmVxMFNJLzVhWTJzOHBpVjA5V2l1RUFKOEVKTXl1NWYyNjdkazQ5ekkxRjhybFNQK1NPSTk3WnVvRnVzaAppY0FUUzd4a2NoVitMVzh1OGJjd3Zxb0NZK0QzcHVmTHFlK1lGNm1qK0pQSG9JZ0Jucll5L0ZNN3dWMFpvUFlBCkNndnlpUzVBOWl3ZFdWeTJpNHRtcndLQmdRREl1d1NuNURsZEdLNUV2Q0RsTjhLdkt6S2tIeUJhdVdadFBYUlcKcHZqNStCN0JLRWE2QXRjVjhNSnc2N2QzNE9aa0lnaGdpTjlQR1NEcmZGa2toZ3Vpa1A4K2VZNzQvdk9rdmZoZApxeXJ5b21iOXVhVVJMWXI4bnpMU05jUytEejAzU3Z6OXZLT3JyY1Q4SFZCSzduU1BpZW9uVTR1TnlLbU9pNlpXCkJZc2hBUUtCZ0VIZzlrTzJtV2J4OFR2alhnNHljU0MrTXZMYjZTSTJGWDRrSkJxdVFYemJKSUlzdjNkaHk5QnkKbHRHTE8zdWQ0a096UEFGVFQ3UnJhWlZRS0NTVmpiRFRPNzYrQ0E0RGQxZWFYeGFhK0I2UzBCUk0xdGZ0OGhOeQo4cVRKcCtpK1hKWmQ0VDUxcS9LcXpZdTJLVzRJME9XYW50dzc3T0JmTWJMQVJPemRSWmJtCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==

配置 kubectl 客户端

在客户端电脑完成如下配置,即可远程管理 Kubernetes 集群

Linux

# 执行命令
vi ~/.kube/config
将前面获得的 /etc/kubernetes/admin.conf 文件的内容粘贴进该文件并保存 # 配置 hosts
echo "x.x.x.x apiserver.demo" >> /etc/hosts

将 x.x.x.x 替换成 demo-master-a-1 的实际 IP 地址

将 apiserver.demo 替换成前面获得 /etc/kubernetes/admin.conf 文件中 clusters/cluster/server 中 URL 里 host 对应的部分

# 验证安装结果
kubectl get nodes
kubectl get pods -n kube-system

Windows

用记事本(或其他文本编辑器)创建文件 ~/.kube/config,其中 ~ 代表当前的用户目录

将前面获得的 /etc/kubernetes/admin.conf 文件的内容粘贴进该文件并保存

用记事本打开 C:\windows\System32\drivers\etc\hosts 文件(需要管理员权限),在该文件末尾添加一行记录:

x.x.x.x apiserver.demo

将 x.x.x.x 替换成 demo-master-a-1 的实际 IP 地址

将 apiserver.demo 替换成前面获得 /etc/kubernetes/admin.conf 文件中 clusters/cluster/server 中 URL 里 host 对应的部分

# 验证安装结果
kubectl get nodes
kubectl get pods -n kube-system

MAC

# 执行命令
vi ~/.kube/config
将前面获得的 /etc/kubernetes/admin.conf 文件的内容粘贴进该文件并保存 # 配置 hosts
echo "x.x.x.x apiserver.demo" >> /etc/hosts

将 x.x.x.x 替换成 demo-master-a-1 的实际 IP 地址

将 apiserver.demo 替换成前面获得 /etc/kubernetes/admin.conf 文件中 clusters/cluster/server 中 URL 里 host 对应的部分

# 验证安装结果
kubectl get nodes
kubectl get pods -n kube-system

在客户端电脑使用 kubectl 远程管理 Kubernetes的更多相关文章

  1. windows kubectl 远程操作k8s

    在windows 电脑上配置kubectl远程操作kubernetes 一.下载windows版的kubectl可执行文件 下载地址 二.创建.kube 建议使用git bash cd ~ mkdir ...

  2. 远程管理客户端--SCCM

    远程控制客户端(设备--启动--远程控制): 1.将该用户在SCCM中赋予 远程工具操作人员 权限后,可以通过ccm控制台连接客户端,即可以使用远程控制工具 客户端设置策略设置--远程工具--管理远程 ...

  3. 远程管理无管理员权限的PC客户端

    一.简介 为提高操作系统稳定性.流畅度,分公司同事PC用户没有administrator权限,导致同事不能对系统进行设置.不能自行安装软件.网管使用远程管理软件(如Teamviewer.QQ)为同事提 ...

  4. 解析ansible远程管理客户端【win终端为例】

    一.前提: 1.1.windows机器开启winrm服务,并设置成允许远程连接状态 具体操作命令如下 set-executionpolicy remotesigned winrm quickconfi ...

  5. Linux - 远程管理常用命令

    远程管理常用命令 目标 关机/重启 shutdown 查看或配置网卡信息 ifconfig ping 远程登录和复制文件 ssh scp 01. 关机/重启 序号 命令 对应英文 作用 01 shut ...

  6. Windows 上的 SSH?使用 PowerShell Remoting 远程管理 Windows 服务器

    作者:陈计节 个人博客:https://blog.jijiechen.com/post/powershell-remoting/ 在 Linux/Unix 世界里 SSH 是个好东西,SSH 是 Se ...

  7. No-5.远程管理常用命令

    远程管理常用命令 目标 关机/重启 shutdown 查看或配置网卡信息 ifconfig ping 远程登录和复制文件 ssh scp 01. 关机/重启 序号 命令 对应英文 作用 01 shut ...

  8. 安装 Helm3 管理 Kubernetes 应用

    文章转载自:http://www.mydlq.club/article/51/ 系统环境: Helm 版本:v3.5.0 Kubernetes 版本:v1.18.2 一.Helm 介绍 Helm 是一 ...

  9. linux-图形化远程管理协议

    远程管理控制方式: RDP(remote desktop protocol)协议: telnet: SSH(Secure Shell): RFB(Remote FrameBuffer)协议(图形化远程 ...

随机推荐

  1. kubernetes下kubelet无法启动

    错误如下: 09:58:45 kubernetes-node01 kubelet[6248]: F0124 09:58:45.902571 6248 server.go:265] failed to ...

  2. 意向不到的Dubug妙招

    1.直接dubug到想要到达的位置,直接点击旁边的数字即可. 2.debug后不想重新启动,想重新进入再执行一次debug,可以使用drop frame来删除当前栈,跳到之前的栈再一次进入这个栈. 注 ...

  3. 日期字符串转为java.sql.Date

    日期字符串转为java.sql.Date类型 问题引出:在将一个日期字符串通过sql语句,插入到数据表的日期字段(字段类型是DATE),时遇到一个问题,如何将一个日期字符串转成java.sql.Dat ...

  4. linux常见命令搜集

    查找根目录下txt和pdf文件 find / \( -name "*.txt" -o -name "*.pdf" \) -print 正则查找根目录下所有的tx ...

  5. Win10环境下使用Flask配合Celery异步推送实时/定时消息(Socket.io)/2020年最新攻略

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_163 首先得明确一点,和Django一样,在2020年Flask 1.1.1以后的版本都不需要所谓的三方库支持,即Flask-Ce ...

  6. 万字长文:从计算机本源深入探寻volatile和Java内存模型

    万字长文:从计算机本源深入探寻volatile和Java内存模型 前言 在本篇文章当中,主要给大家深入介绍Volatile关键字和Java内存模型.在文章当中首先先介绍volatile的作用和Java ...

  7. LuoguAT2827 LIS (LIS)

    裸题 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm ...

  8. 部署 Vite 静态网站到 Gitee Pages

    开启仓库的 Gitee Pages 服务,部署目录 dist/: Vite 构建 build,输出到 dist 文件:取消 .gitignore 中的 dist: Vite preview 查看静态网 ...

  9. Web 布局设计(一):固定侧边栏

    前言 闲着无事,做一些实战练习,今天实现一个如标题所示的布局设计.通过此次布局设计,我希望掌握position属性值 fixed.absolute.relative.width和height属性值 i ...

  10. 从零开始实现一个MyBatis加解密插件

    作者:vivo 互联网服务器团队- Li Gang 本篇文章介绍使用MyBatis插件来实现数据库字段加解密的过程. 一.需求背景 公司出于安全合规的考虑,需要对明文存储在数据库中的部分字段进行加密, ...