永久建站平台,solidworks永久免费版,wordpress密码解密,设计工作室官网文章目录 一、前言二、windows上安装kubectl和mobaxterm2.1 准备安装包2.2 安装kubectl2.3 链接k8s集群2.4 查看某一个pod的容器日志2.5 切换context 上下文配置#xff0c;实现在多个k8s集群间动态切换 一、前言 现如今是一个万物皆上云 的时代#xff0c;各种云层出不穷实现在多个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.3mobaxtermv2.34.zip
https://download.csdn.net/download/weter_drop/88539291
2.2 安装kubectl
kubectl 用于远程控制k8s集群为了方便使用 我们需要配置一下 系统的环境变量比如在我的电脑里我就把 kubectl 放到了 C:\my-soft\k8s下面。
添加一个系统变量 k8s 然后再追加到 path变量中。 保存环境变量以后打开一个cmd窗口 输入如下命令如果能看到版本信息既代表安装成功。
kubectl version2.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 wide2.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等协议可以传输文件到远程计算机或从远程计算机下载文件。 等等很多特性。
首先我们需要找出容器的 完整名字。
如果不知道容器在哪个命名空间 kubectl get pod --all-namespaces | grep 容器名字如果不知道容器所在的命名空间 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