当前位置: 首页 > news >正文

kubectl 本地远程链接k8s多个集群,远程管控多集群,查看日志 部署服务(windows版)

文章目录

  • 一、前言
  • 二、windows上安装kubectl和mobaxterm
    • 2.1 准备安装包
    • 2.2 安装kubectl
    • 2.3 链接k8s集群
    • 2.4 查看某一个pod的容器日志
    • 2.5 切换context 上下文配置,实现在多个k8s集群间动态切换

一、前言

在这里插入图片描述
现如今是一个万物皆上云 的时代,各种云层出不穷,但是大多数云的容器管理平台基本都是基于kubernetes的。
kubernetes是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器—-Borg系统的一个开源版本,于2014年9月发布第一个版本,2015年7月发布第一个正式版本。kubernetes的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。目的是实现资源管理的自动化,主要提供了如下的主要功能:

  • 自我修复:一旦某一个容器崩溃,能够在1秒中左右迅速启动新的容器
  • 弹性伸缩:可以根据需要,自动对集群中正在运行的容器数量进行调整
  • 服务发现:服务可以通过自动发现的形式找到它所依赖的服务
  • 负载均衡:如果一个服务起动了多个容器,能够自动实现请求的负载均衡
  • 版本回退:如果发现新发布的程序版本有问题,可以立即回退到原来的版本
  • 存储编排:可以根据容器自身的需求自动创建存储
    各种云平台纵使有很多优点,但是有一个很不方便点,就是开发人员无法在本机电脑上查看到pod日志,还需要通过登录云平台,然后再登录到k8s集群中才能查看具体的某一个pod的日志,非常不方便。这时候 k8s 给我们提供了一个 命令行工具 (kubectl)kubectl 是使用 Kubernetes API 与 Kubernetes 集群的控制面进行通信的命令行工具。接下来我将讲解如何在windows电脑通过 kubectl进行远程控制k8s的多个集群。

二、windows上安装kubectl和mobaxterm

2.1 准备安装包

kubectl 用于远程控制k8s集群
安装包下载地址:
https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-windows/
在这里插入图片描述

mobaxterm 用于在windows 使用各种linux上的便捷命令。这里使用free的版本就够用了。
安装包下载地址:
https://mobaxterm.mobatek.net/download.html
在这里插入图片描述

网速不好的也可以直接从这下载

kubectl1.28.3+mobaxtermv2.34.zip

https://download.csdn.net/download/weter_drop/88539291

2.2 安装kubectl

kubectl 用于远程控制k8s集群,为了方便使用 我们需要配置一下 系统的环境变量,比如在我的电脑里我就把 kubectl 放到了 C:\my-soft\k8s下面。
在这里插入图片描述

添加一个系统变量 k8s ,然后再追加到 path变量中。

在这里插入图片描述
在这里插入图片描述
保存环境变量以后,打开一个cmd窗口:
输入如下命令,如果能看到版本信息,既代表安装成功。

kubectl version

在这里插入图片描述

2.3 链接k8s集群

默认情况下 kubectl的配置文件会在 C:\Users\xxxxxxx.kube (xxxxxxx是你当前的登录用户名)文件夹下,如果没有新建一个 **condfig ** 文件即可,不需要任何后缀名。
至于config的配置内容可以找运维配置,或者去找一台安装了kubectl 能够连接上 k8s的服务器,然后拷贝一下 config文件即可。
通过这个命令可以找到 .kube 文件夹。

cd ~ && ls -a | grep .kube

配置文件的内容一般如下:

apiVersion: v1
clusters:
- cluster:insecure-skip-tls-verify: true# apiserver的地址,这个必须配对server: https://127.0.0.1:6443name: k8s-dev
contexts:
- context:cluster: k8s-devuser: k8s-dev-username: k8s-dev  
# 当前上下文  
current-context: k8s-dev
kind: Config
preferences: {}
users:
- name: k8s-dev-useruser:token: a536xxxxxxxxxxxxxxxxx

输入以下命令即可查看当前集群的每一个node情况。

kubectl  get nodes -o wide

在这里插入图片描述

2.4 查看某一个pod的容器日志

由于windows的并不具有linux上一些完整的命令比如我们常用的 grep命令 ls 命令 等等,这里推荐使用 mobaxterm 的本地终端进行使用。
MobaXterm是一款功能强大的多功能远程计算机管理软件,可以在Windows操作系统下运行,支持SSH、Telnet、RDP、VNC等协议,同时还支持X11服务器和X11转发等功能。以下是MobaXterm的一些特点:

终端模拟器:MobaXterm提供了一个功能强大的终端模拟器,支持SSH、Telnet、RDP等协议,可以连接到远程计算机进行管理和操作。

X11服务器和X11转发:MobaXterm内置了X11服务器和X11转发功能,可以在Windows操作系统下运行Linux和Unix应用程序,同时还支持多窗口和多标签等特性。

文件传输:MobaXterm支持SCP、SFTP和FTP等协议,可以传输文件到远程计算机或从远程计算机下载文件。
等等很多特性。
在这里插入图片描述

首先我们需要找出容器的 完整名字

  1. 如果不知道容器在哪个命名空间
 kubectl get pod --all-namespaces  |  grep 容器名字
  1. 如果不知道容器所在的命名空间
 kubectl get pod -n $NAMESPACE  |  grep 容器名字

比如我们要找一个pod名中包含 network 的服务。
可以输入:

 kubectl get pod --all-namespaces | grep network

在这里插入图片描述
假设第一个pod的name是 xxxx-network-0 ,我们想看这个pod的最近500条日志记录就可以使用如下命名:

kubectl  -n default logs -f xxx-network-0 --tail 500

其他的一些日志查看命令也可以参考:

k8s导出日志方法
https://blog.csdn.net/chen497147884/article/details/128452650

2.5 切换context 上下文配置,实现在多个k8s集群间动态切换

在日常开发运维过程中我们一般会有多个k8s集群,比如dev test prod等等,当您从一个集群切换到另一个集群时,管理这样的配置文件很快就会变得很麻烦。这就是 Kubernetes context 发挥作用的地方。您可以将 Kubernetes 上下文视为一种快捷方式,让您可以方便地访问集群、用户和命名空间参数。

创建多个集群上下文

apiVersion: v1
clusters:- cluster:insecure-skip-tls-verify: trueserver: https://127.0.0.1:4001name: k8s-dev-clusters- cluster:insecure-skip-tls-verify: trueserver: https://127.0.0.1:4002name: k8s-test-clusters- cluster:insecure-skip-tls-verify: trueserver: https://127.0.0.1:4004name: k8s-prod-clusters  
contexts:- context:cluster: k8s-dev-clustersuser: k8s-dev-username: k8s-dev- context:cluster: k8s-test-clustersuser: k8s-test-username: k8s-test- context:cluster: k8s-prod-clustersuser: k8s-prod-username: k8s-prod
#默认的context    
current-context: k8s-dev
kind: Config
preferences: {}
users:- name: k8s-dev-useruser:token: a5bbbbbbbbbbbbbbbbbbbbbb- name: k8s-test-useruser:token: a5cccccccccccccccccccccc- name: k8s-prod-useruser:token: a5cccccccccccccggggggggg

保存一下 config 文件,执行如下命令:

kubectl config get-contexts

我们可以看到有如下三个 contexts,目前使用的是k8s-dev的contexts。
在这里插入图片描述
切换contexts 到 k8s-test 可以使用如下命令:

kubectl config use-context k8s-test

看到 Switched to context “k8s-test”. 既代表我们已经切换成功:
在这里插入图片描述
详细的 contexts 可以查看下面的文章:
Kubernetes context 上下文配置
https://blog.csdn.net/xixihahalelehehe/article/details/129563776

相关文章:

kubectl 本地远程链接k8s多个集群,远程管控多集群,查看日志 部署服务(windows版)

文章目录 一、前言二、windows上安装kubectl和mobaxterm2.1 准备安装包2.2 安装kubectl2.3 链接k8s集群2.4 查看某一个pod的容器日志2.5 切换context 上下文配置,实现在多个k8s集群间动态切换 一、前言 现如今是一个万物皆上云 的时代,各种云层出不穷&am…...

wireshark打开tcpdump抓的包 vwr: Invalid data length runs past the end of the record

tcpdump -i any -n -s0 > t.pcap 使用此命令在Debian系统上抓包,下载到PC,用wireshark打开时报错: 后来发现写入文件时使用 -w 是没问题的,原因还不清楚。 tcpdump -i any -n -s0 -w t.pcap...

Python爬虫教程:从入门到实战

更多Python学习内容:ipengtao.com 大家好,我是涛哥,今天为大家分享 Python爬虫教程:从入门到实战,文章3800字,阅读大约15分钟,大家enjoy~~ 网络上的信息浩如烟海,而爬虫(…...

C++实现高频设计模式

面试能说出这几种常用的设计模式即可 1.策略模式 1.1 业务场景 大数据系统把文件推送过来,根据不同类型采取不同的解析方式。多数的小伙伴就会写出以下的代码: if(type"A"){//按照A格式解析 }else if(type"B"){//按照B格式解析 …...

opencv(2): 视频采集和录制

视频采集 相关API VideoCapture()cap.read(): 返回两个值,第一个参数,如果读到frame,返回 True. 第二个参数为相应的图像帧。cap.release() VideoCapture cv2.VideoCapture(0) 0 表示自动检测,如果在笔记本上运行&…...

SpringBoot+EasyExcel设置excel样式

方式一:使用注解方式设置样式 模板可通过HeadFontStyle、HeadStyle、ContentFontStyle、ContentStyle、HeadRowHeight ContentRowHeight等注解设置excel单元格样式; //字体样式及字体大小 HeadFontStyle(fontName "宋体",fontHeightInPoints…...

自定义View之Measure(二)

measure 用来测量 View 的宽和高,它的流程分为 View 的 measure 流程和 ViewGroup 的measure流程,只不过ViewGroup的measure流程除了要完成自己的测量,还要遍历地调用子元素的measure()方法。 上一回说到performMeasur…...

SQL注入学习--GTFHub(布尔盲注+时间盲注+MySQL结构)

目录 布尔盲注 手工注入 笔记 Boolean注入 # 使用脚本注入 sqlmap注入 使用Burpsuite进行半自动注入 时间盲注 手工注入 使用脚本注入 sqlmap注入 使用Burpsuite进行半自动注入 MySQL结构 手工注入 sqlmap注入 笔记 union 联合注入,手工注入的一般步骤 …...

Kubernetes学习-概念2

参考:关于 cgroup v2 | Kubernetes 关于 cgroup v2 在 Linux 上,控制组约束分配给进程的资源。 kubelet 和底层容器运行时都需要对接 cgroup 来强制执行为 Pod 和容器管理资源, 这包括为容器化工作负载配置 CPU/内存请求和限制。 Linux 中…...

StyleGAN:彻底改变生成对抗网络的艺术

一、介绍 多年来,人工智能领域取得了显着的进步,其中最令人兴奋的领域之一是生成模型的发展。这些模型旨在生成与人类创作没有区别的内容,例如图像和文本。其中,StyleGAN(即风格生成对抗网络)因其创建高度逼…...

黑马程序员微服务第四天课程 分布式搜索引擎1

分布式搜索引擎01 – elasticsearch基础 0.学习目标 1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 例如: …...

向量以及矩阵

0.前言 好了那我们新的征程也即将开始,那么在此呢我也先啰嗦两句,本篇文章介绍数学基础的部分,因为个人精力有限我不可能没一字一句都讲得非常清楚明白,像矩阵乘法之类的一些基础知识我都是默认你会了(还不会的同学推…...

9.程序的机器级代码表示,CISC和RISC

目录 一. x86汇遍语言基础(Intel格式) 二. AT&T格式汇编语言 三. 程序的机器级代码表示 (1)选择语句 (2)循环语句 (3)函数调用 1.函数调用命令 2.栈帧及其访问 3.栈帧的…...

《硅基物语.AI写作高手:从零开始用ChatGPT学会写作》《从零开始读懂相对论》

文章目录 《硅基物语.AI写作高手:从零开始用ChatGPT学会写作》内容简介核心精华使用ChatGPT可以高效搞定写作的好处如下 《从零开始读懂相对论》内容简介关键点书摘最后 《硅基物语.AI写作高手:从零开始用ChatGPT学会写作》 内容简介 本书从写作与ChatG…...

【2016年数据结构真题】

已知由n&#xff08;M>2&#xff09;个正整数构成的集合A{a<k<n},将其划分为两个不相交的子集A1 和A2&#xff0c;元素个数分别是n1和n2&#xff0c;A1和A2中的元素之和分别为S1和S2。设计一个尽可能高效的划分算法&#xff0c;满足|n1-n2|最小且|s1-s2|最大。要求…...

创作者等级终于升到4级了

写了两个月的文章&#xff0c;终于等到4级了。发文纪念一下&#xff1a;...

Games104现代游戏引擎笔记 面向数据编程与任务系统

Basics of Parallel Programming 并行编程的基础 核达到了上限&#xff0c;无法越做越快&#xff0c;只能通过更多的核来解决问题 Process 进程 有独立的存储单元&#xff0c;系统去管理&#xff0c;需要通过特殊机制去交换信息 Thread 线程 在进程之内&#xff0c;共享了内存…...

系列三、GC垃圾回收【总体概览】

一、GC垃圾回收【总体概览】 JVM进行GC时&#xff0c;并非每次都对上面的三个内存区域&#xff08;新生区、养老区、元空间/永久代&#xff09;一起回收&#xff0c;大部分回收的是新生区里边的垃圾&#xff0c;因此GC按照回收的区域又分为了两种类型&#xff0c;一种是发生在新…...

无线WiFi安全渗透与攻防(N.3)WPA破解-创建Hash-table加速并用Cowpatty破解

WPA破解-创建Hash-table加速并用Cowpatty破解 WPA破解-创建Hash-table加速并用Cowpatty破解1.Cowpatty 软件介绍2.渗透流程1.安装CoWPAtty2.抓握手包1.查看网卡2.开启监听模式3.扫描wifi4.抓握手包5.进行冲突模式攻击3.STA重新连接wifi4.渗透WPA wifi5.使用大字典破解3.hash-ta…...

golang 动态库

目录 1. golang 动态库2. golang 语言使用动态库、调用动态链接库2.1. Go 插件系统2.2. 动态加载的优劣2.3. Go 的插件系统&#xff1a;Plugin2.4. 插件开发原则2.4.1. 插件独立2.4.2. 使用接口类型作为边界2.4.3. Unix 模块化原则2.4.4. 版本控制 2.5. 插件开发示例2.5.1. 编写…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

Modbus RTU与Modbus TCP详解指南

目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...

土建施工员考试:建筑施工技术重点知识有哪些?

《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目&#xff0c;核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容&#xff0c;附学习方向和应试技巧&#xff1a; 一、施工组织与进度管理 核心目标&#xff1a; 规…...

密码学基础——SM4算法

博客主页&#xff1a;christine-rr-CSDN博客 ​​​​专栏主页&#xff1a;密码学 &#x1f4cc; 【今日更新】&#x1f4cc; 对称密码算法——SM4 目录 一、国密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特点 2.3 基本部件 2.3.1 S盒 2.3.2 非线性变换 ​编辑…...