技术漫谈 | 远程访问和控制云端K8S服务器的方法

对于部署在云端的K8S容器编排系统,可以先通过SSH远程登录到K8S所在主机,然后运行kubectl命令工具来控制K8S服务系统。然而,先SSH登录才能远程访问的二阶段方式,对于使用Linux桌面或者macOS桌面的同学来说,Kubectl运行环境脱离了本地桌面环境,感觉到使用不方便,心情不爽。

下面介绍一种从本地桌面远程直接访问和控制云端K8S服务器的方法,有助于恢复愉快心情。该方法对于Windows桌面也适用,只不过本地文件路径不同,需要作适当修改。

一、kubectl远程访问控制原理  

K8S是非常注重安全性的云计算基础平台,各个节点或者组件之间的通信都经过加密传输,发送方先加密通信报文,接收方解密后还原成明文。节点间通信通过公钥、私钥和数字证书等安全机制进行,能识别节点或用户身份,并保证通信和访问安全。

图 kubectl远程访问和控制K8S工作原理

K8S初始化时,kubeadm命令自动创建了管理员用户kubernetes-admin,并生成用户公钥、私钥和数字证书,证书信息保存在master节点的配置文件/etc/kubernetes/admin.conf中。

持有该证书文件的用户,不论身在何处,只要网络互联互通,就能远程访问K8S服务器。因为K8S服务器通过客户端发送的数字证书等识别远程用户的身份,认证通过的远程访问视同服务器本地用户访问。

命令kubectl默认从本机所在$HOME/.kube/config文件读取配置文件,也支持环境变量$KUBECONFIG指定其他配置文件。

配置文件admin.conf配置文件的server属性指定远程服务器的协议、地址和端口。云端服务器一般拥有内网IP和公网IP两套地址系统:在云端内部,云服务器之间通过内网IP地址相互访问;而在云平台外部,从公网访问云服务器,必须使用云服务器的公网IP地址。

配置文件admin.conf复制到本地文件系统后,需要先修改server属性,替换为公网地址,才能正确连接到云服务器。

举例如下:

将原配置文件config的server属性:

server: https://192.168.1.191:6443

替换为公网地址:

server: https://118.31.xo.xo:6443

属性server也可以使用域名或者主机名代替IP地址,前提是域名或者主机名已经用配置文件内的数字证书作了数字签名。否则,kubectl命令运行时会报告数字签名验证错误。

例如,主机名访问配置如下:

server: https://myserver:6443

二、 假设前提

为了方便行文,不涉及到过多的细节,有如下假设前提:

本地桌面已经安装了K8S客户端控制程序kubectl,并且与云端K8S系统版本兼容。

本地已经安装SSH客户程序,后面会用到sftp命令下载证书配置文件。

三、 kubectl远程访问控制原理  

以部署在阿里云上的K8S dev环境为例,说明配置过程。已知云服务器dev-7是K8S的master节点。

先登录到本地桌面,打开Terminal终端。

修改本地/etc/hosts文件,在最后添加一行:

# vi /etc/hosts...118.31.xo.xo  myserver

创建本地目录:

 # mkdir -p ~/.kube

符号~与环境变量$HOME同义。

改变当前工作目录:

 # cd ~/.kube

使用sftp下载云服务器上的配置文件,按提示输入root密码:

# sftp [email protected]7
Sftp> get /etc/kubernetes/admin.conf config
Sftp> bye

修改配置文件的server属性:

# vi config...server: https://myserver:6443...

配置过程就完成了。

主机名myserver已经过数字证书签名,所以命令kubectl能正确识别。

四、测试验证

查看config配置文件:

# more ~/.kube/config

使用kubectl命令显示云端集群内的节点:

# kubectl get node

结果表明,从本地桌面能正确连接到云端K8S服务器。读者们可以使用kubectl命令工具的丰富子命令集管理和控制K8S服务器。

因为kubectl命令运行在本地桌面,其输入、输出和子命令用到的yaml文件能与本地文件系统紧密集成,免除了在本地桌面与云服务器之间传输文件的烦恼,也便于打造个性化的个人工作环境。

感谢各位小伙伴提出需求,激发灵感,或提供技术指导。

在使用过程中,各位读者、用户和微友如有任何问题请随时与我联系。

清如许 : [email protected]

微信:solomonxu9999

本文是作者原创作品,原文发表在公众号  技术漫谈 | 远程访问和控制云端K8S服务器的方法

原文地址:https://www.cnblogs.com/solomonxu/p/11484844.html

时间: 2024-08-29 23:32:34

技术漫谈 | 远程访问和控制云端K8S服务器的方法的相关文章

射频识别技术漫谈(8)——动物标签

动物标签也是工作在TTF模式的ID(Identification)卡.之所以通常称为动物标签,估计是因为一来和识别人的ID卡相区分,二是因为动物不如人听话,人的ID卡可以做成卡片形状拿在手上,而动物不会用四肢持卡,要么做成小玻璃管状用设备注射到皮下,例如小狗小猫等宠物,要么做成耳钉订在耳朵上,例如猪耳标,要么做成环状套在腿上,例如信鸽的脚环. 动物识别标签的通讯方式分为全双工(FDX)和半双工(HDX),全双工是标签回送数据时读卡器产生的射频场不消失,半双工是标签回送数据时读卡器产生的射频场消失

Linux网络服务10——远程访问及控制

Linux网络服务10--远程访问及控制 一.SSH概述 1.SSH简介 SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录.远程复制等功能.SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,语TELNET(远程登录)等应用相比,SSH协议提供了更好的安全性. 2.默认监听端口:TCP 22 二.OpenSSH的配置 1.OpenSSH安装包 默认安装Linux系统时自动安装,若未安装,安装光盘中的如下rpm包: openssh-5

射频识别技术漫谈(14)——Mifare S50与S70的存取控制

存取控制指符合什么条件才能对卡片进行操作. S50和S70的块分为数据块和控制块,对数据块的操作有"读"."写"."加值"."减值(含传输和存储)"四种,对控制块的操作只有"读"和"写"两种. S50和S70的每个扇区有两组密码KeyA和KeyB,所谓的"条件"就是针对这两组密码而言,包括"验证密码A可以操作(KeyA)"."验证密码B可

射频识别技术漫谈(28)——基于MF1射频卡的酒店门锁设计

电子门锁是现代星级酒店管理电子化.智能化的重要电子设备.相较于传统的机械锁,基于RFID技术的电子门锁使用方便,易于管理,安全性高,可实现对开锁用户的分优先级自动管理,对房间入住信息实现自动统计与报表输出. 1  系统整体分析 MF1 S50和S70卡是遵守ISO14443A国际标准的非接触式逻辑加密卡,S50卡内共有1024字节非易失性存储空间,分为16个扇区,每个扇区包含4个数据块,每个扇区都有一组独立的密码A和B,扇区内的每个数据块都可单独设置存取条件.S70存储结构与S50类似,存储空间

射频识别技术漫谈(1)——概念、分类

现代社会智能卡已经渗透到生活的方方面面,公交卡.考勤卡.身份证.手机卡等等数不胜数. 智能卡按使用时是否和读卡器接触可分为接触式智能卡和非接触式智能卡,接触式智能卡上有6-8个触点,使用时插在卡座上,典型的如手机卡以及以前的公用电话卡.非接触式智能卡没有触点,卡上也没有电源,通过读卡器产生的电磁场获得能量并与读写器交换信息.由于非接触式智能卡的无源和免接触特性,卡的使用寿命和安全性大大提高,目前应用越来越广泛. 根据安全等级,智能卡可分为存储器卡.逻辑加密卡和CPU卡.存储器卡就像一个无人看守且

射频识别技术漫谈(4)——数据编码

前已述及,射频识别技术中的调制方法一般使用调幅(AM),也就是将有用信号调制在载波的幅度上传送出去.这里的"有用信号"指用高低电平表示的数据"0"或"1".那么如何用高低电平表示数据"0"或"1"呢? 最简单的办法就是用高电平表示"1",用低电平表示"0",这种代码叫全宽码,如下图所示:     这种编码方式存在的最大缺陷就是数据容易失步.上图的数据我们看的很清楚,但

[转载] Google数据中心网络技术漫谈

原文: http://www.sdnlab.com/12700.html?from=timeline&isappinstalled=0#10006-weixin-1-52626-6b3bffd01fdde4900130bc5a2751b6d1&sukey=fc78a68049a14bb247c537e229e9301ea4dca80236df4f4e775535c08f0a24420a9ac4d726c99dad63a9f6e4c88271ed 真羡慕 google 强大的网络基础设施啊,

Linux远程访问及控制

一.SSH 远程管理 SSH的功能 SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录.远程复制等功能. SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令.与早期的telnet (远程登录).rsh(Remote Shell,远程执行命令).rcp(Remote File Copy,远程文件复制)等应用相比,SSH协议提供了更好的安全性. 配置OpenSSH服务端 服务监听选项 sshd 服务使用的默认端口号为22 必要时建议修改

转帖:数据库集群技术漫谈

数据库集群技术漫谈 原帖:http://www.cnblogs.com/CareySon/p/3627594.html 简介 当今世界是一个信息化的世界,我们的生活中无论是生活.工作.学习都离不开信息系统的支撑.而信息系统的背后用于保存和处理最终结果的地方就是数据库.因此数据库系统就变得尤为重要,这意味着如果数据库如果面临问题,则意味着整个应用系统也会面临挑战,从而带来严重的损失和后果. 如今"大数据"这个词已经变得非常流行,虽然这个概念如何落地不得而知.但可以确定的是,随着物联网.移