当前位置: 首页 > 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. 编写…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三&#xff0c;HubSpot宣布已构建与ChatGPT的深度集成&#xff0c;这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋&#xff0c;但同时也存在一些关于数据安全的担忧。 许多网络声音声称&#xff0c;这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

vue3 daterange正则踩坑

<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...

微服务通信安全:深入解析mTLS的原理与实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言&#xff1a;微服务时代的通信安全挑战 随着云原生和微服务架构的普及&#xff0c;服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...