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

这篇具有很好参考价值的文章主要介绍了kubectl 本地远程链接k8s多个集群,远程管控多集群,查看日志 部署服务(windows版)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

kubtctl连接k8s,实战问题,运维,kubernetes,k8s,云原生,kubernetes,容器,运维开发
现如今是一个万物皆上云 的时代,各种云层出不穷,但是大多数云的容器管理平台基本都是基于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/
kubtctl连接k8s,实战问题,运维,kubernetes,k8s,云原生,kubernetes,容器,运维开发

mobaxterm 用于在windows 使用各种linux上的便捷命令。这里使用free的版本就够用了。
安装包下载地址:
https://mobaxterm.mobatek.net/download.html
kubtctl连接k8s,实战问题,运维,kubernetes,k8s,云原生,kubernetes,容器,运维开发

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

kubectl1.28.3+mobaxtermv2.34.zip

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

2.2 安装kubectl

kubectl 用于远程控制k8s集群,为了方便使用 我们需要配置一下 系统的环境变量,比如在我的电脑里我就把 kubectl 放到了 C:\my-soft\k8s下面。
kubtctl连接k8s,实战问题,运维,kubernetes,k8s,云原生,kubernetes,容器,运维开发

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

kubtctl连接k8s,实战问题,运维,kubernetes,k8s,云原生,kubernetes,容器,运维开发
kubtctl连接k8s,实战问题,运维,kubernetes,k8s,云原生,kubernetes,容器,运维开发
保存环境变量以后,打开一个cmd窗口:
输入如下命令,如果能看到版本信息,既代表安装成功。

kubectl version

kubtctl连接k8s,实战问题,运维,kubernetes,k8s,云原生,kubernetes,容器,运维开发

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

kubtctl连接k8s,实战问题,运维,kubernetes,k8s,云原生,kubernetes,容器,运维开发

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等协议,可以传输文件到远程计算机或从远程计算机下载文件。
等等很多特性。
kubtctl连接k8s,实战问题,运维,kubernetes,k8s,云原生,kubernetes,容器,运维开发

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

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

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

 kubectl get pod --all-namespaces | grep network

kubtctl连接k8s,实战问题,运维,kubernetes,k8s,云原生,kubernetes,容器,运维开发
假设第一个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。
kubtctl连接k8s,实战问题,运维,kubernetes,k8s,云原生,kubernetes,容器,运维开发
切换contexts 到 k8s-test 可以使用如下命令:

kubectl config use-context k8s-test

看到 Switched to context “k8s-test”. 既代表我们已经切换成功:
kubtctl连接k8s,实战问题,运维,kubernetes,k8s,云原生,kubernetes,容器,运维开发
详细的 contexts 可以查看下面的文章:
Kubernetes context 上下文配置
https://blog.csdn.net/xixihahalelehehe/article/details/129563776文章来源地址https://www.toymoban.com/news/detail-772750.html

到了这里,关于kubectl 本地远程链接k8s多个集群,远程管控多集群,查看日志 部署服务(windows版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • k8s容器集群工作负载节点跨越多个云计算厂商

      随着亚马逊云、阿里云、华为云、腾讯云等云计算服务厂商越来越安全、稳定,以及价格越来越便宜,越来越多的企业或个人开始尝试或正在使用云计算服务厂商提供的IaaS服务替代自建IDC机房中的基础设施资源。面对各个云计算厂商的营销套路,不少企业不知道选哪家云

    2023年04月09日
    浏览(44)
  • 本地虚拟机搭建k8s集群完整篇

    在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 一台或多台机器【本人是三个,一个master,两个node】,操作系统 CentOS7.x-86_x64 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB及以上 集群中所有机器之间网络互通 可以访问外网,需要拉取镜像 禁止swap分区  此处

    2024年02月02日
    浏览(30)
  • 使用Kind搭建本地k8s集群环境

    目录 1.前提条件 2.安装Kind 3.使用Kind创建一个K8s集群 3.1.创建一个双节点集群(一个Master节点,一个Worker节点) 3.2.验证一下新创建的集群信息  3.3.删除刚刚新建的集群  4.安装集群客户端  4.1.安装kubectl 4.1.1.验证kubectl 4.2.安装Lens 4.2.1.下载最新Lens安装包 4.2.2.打开Lens 4.参考文

    2024年02月11日
    浏览(49)
  • k8s集群pod中文件导出到本地

    首先在k8s集群中先找到pod主机;  确定pod容器主机ip为192.168.1.113;等到113主机查看docker ps;发现113上没有docker命令; rpm -qa |grep contain; top; ps  aux |grep docker ; 查询主机上实现docker的方式;    crictl ps;查询pod容器;  容器中没有tar命令的话可以尝试:在主机上 crictl  cp  容器

    2024年02月11日
    浏览(31)
  • k8s——kubectl

    目录 一、k8s管理操作方法 二、陈述式资源管理方法 1、基本信息查看 1.1 查看k8s版本信息 1.2 查看资源对象简写 1.3 查看集群信息 1.4 配置kubectl自动补全 1.5 node节点查看日志 2、基本信息查看 2.1 查看master 节点状态 2.2 查看命令空间 2.3 查看default命名空间的所有资源 2.4 创建命名

    2024年02月14日
    浏览(43)
  • 使用 zerotier 打通云上与本地网络并搭建 k8s 集群

    最近不少云厂商都推出了云主机包年优惠活动,虽然配置不高但好在有公网 IP,恰好家里有一台 Mac mini 在吃灰,花了三杯咖啡钱买了一年某云的云主机打算将其和家里的 Mac mini 组成 k8s 集群,方便平时学习和测试同时也能通过云主机的公网 IP 访问到 Mac mini 上运行的服务。为

    2024年01月23日
    浏览(42)
  • 如何通过port-forward命令在本地访问 k8s 集群服务

    公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享 在我们访问k8s中的pod服务时,一般通过node port映射pod端口进行访问,还有一种是通过ingress或者istio通过域名方式来访问,虽然两种方式能满足我们需求,但是如果针对临时访问,配置起来还是

    2024年02月04日
    浏览(59)
  • 使用Vagrant创建和管理本地Kubernetes(K8s)集群的步骤是什么

    🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏:云计算 ✨文章内容:Vagrant 🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗 在本文中,我们将探讨如何使用Vagrant来创建和管理一个本地的

    2024年02月09日
    浏览(44)
  • k8s kubectl常用命令

    kubectl 是 Kubernetes 的一个命令行管理工具,可用于 Kubernetes 上的应用部署和日常管理。本文列举了 9 个常见的 kubectl 命令,并总结了一些使用技巧,希望可以帮助系统管理员简化管理工作。 对于刚开始使用命令行工具的开发者,最保险的方法是提出问题(读取操作),而不是

    2024年02月11日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包