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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: kubectl 本地远程链接k8s多个集群,远程管控多集群,查看日志 部署服务(windows版)

一、前言

  • 自我修复:一旦某一个容器崩溃,能够在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
• 1


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:6443
  name: k8s-dev
contexts:
- context:
    cluster: k8s-dev
    user: k8s-dev-user
  name: k8s-dev  
# 当前上下文  
current-context: k8s-dev
kind: Config
preferences: {}
users:
- name: k8s-dev-user
  user:
    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: true
      server: https://127.0.0.1:4001
    name: k8s-dev-clusters
  - cluster:
      insecure-skip-tls-verify: true
      server: https://127.0.0.1:4002
    name: k8s-test-clusters
  - cluster:
      insecure-skip-tls-verify: true
      server: https://127.0.0.1:4004
    name: k8s-prod-clusters  
contexts:
  - context:
      cluster: k8s-dev-clusters
      user: k8s-dev-user
    name: k8s-dev
  - context:
      cluster: k8s-test-clusters
      user: k8s-test-user
    name: k8s-test
  - context:
      cluster: k8s-prod-clusters
      user: k8s-prod-user
    name: k8s-prod
#默认的context    
current-context: k8s-dev
kind: Config
preferences: {}
users:
  - name: k8s-dev-user
    user:
      token: a5bbbbbbbbbbbbbbbbbbbbbb
  - name: k8s-test-user
    user:
      token: a5cccccccccccccccccccccc
  - name: k8s-prod-user
    user:
      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


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
13天前
|
监控 搜索推荐 开发工具
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
|
3月前
|
Kubernetes 持续交付 Docker
利用 Docker 和 Kubernetes 实现微服务部署
【10月更文挑战第2天】利用 Docker 和 Kubernetes 实现微服务部署
|
29天前
|
Ubuntu 网络协议 Linux
快速部署WSL(Windows Subsystem for Linux)
WSL提供了一种轻量级的方法,使开发者能够在Windows上无缝运行Linux环境。通过本文介绍的步骤,可以快速安装、配置和使用WSL,以满足开发和测试的需求。
110 8
|
1月前
|
存储 Kubernetes 容器
K8S部署nexus
该配置文件定义了Nexus 3的Kubernetes部署,包括PersistentVolumeClaim、Deployment和服务。PVC请求20Gi存储,使用NFS存储类。Deployment配置了一个Nexus 3容器,内存限制为6G,CPU为1000m,并挂载数据卷。Service类型为NodePort,通过30520端口对外提供服务。所有资源位于`nexus`命名空间中。
|
1月前
|
缓存 安全 网络协议
使用事件日志识别常见 Windows 错误
事件查看器是Windows操作系统中的标准诊断工具,用于记录系统事件,包括硬件问题、软件中断和系统行为等详细信息。通过分析这些日志,管理员能够追踪和解决系统错误。访问方法包括使用快捷键Win + R输入eventvwr.msc,或通过控制面板进入。事件查看器中的每条记录包含事件ID、来源和描述,帮助识别和解决问题。常见错误如蓝屏死机、DLL错误、驱动程序错误等,可通过更新驱动程序、运行系统诊断、使用恢复功能等方式解决。
|
3月前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
169 60
|
3月前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
292 62
|
2月前
|
Kubernetes Cloud Native 微服务
云原生入门与实践:Kubernetes的简易部署
云原生技术正改变着现代应用的开发和部署方式。本文将引导你了解云原生的基础概念,并重点介绍如何使用Kubernetes进行容器编排。我们将通过一个简易的示例来展示如何快速启动一个Kubernetes集群,并在其上运行一个简单的应用。无论你是云原生新手还是希望扩展现有知识,本文都将为你提供实用的信息和启发性的见解。
|
2月前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
164 4
|
2月前
|
监控 安全 网络安全
使用EventLog Analyzer日志分析工具监测 Windows Server 安全威胁
Windows服务器面临多重威胁,包括勒索软件、DoS攻击、内部威胁、恶意软件感染、网络钓鱼、暴力破解、漏洞利用、Web应用攻击及配置错误等。这些威胁严重威胁服务器安全与业务连续性。EventLog Analyzer通过日志管理和威胁分析,有效检测并应对上述威胁,提升服务器安全性,确保服务稳定运行。