在过去的一两年里,用于容器管理的Kubernetes已成为一种巨大的趋势。可以使用各种 Kubernetes 原生开发的应用程序,以及一些开箱即用的解决方案,可将你的应用程序扩展到容器领域。这些工具旨在管理在各种其他系统上运行的 Kubernetes 和容器化应用程序。
在本文中,我将分享我个人列出的用于管理容器的 8 大 Kubernetes 工具。
Kubernetes Monitor 是我在寻找用于管理容器的工具时首先寻找的 Kubernetes 工具之一。Kubernetes Monitor 是我为此尝试的第一个开源工具,但我非常失望,因为它甚至不支持 VM。
Kubernetes Monitor 的第一个 beta 版本是在 2017 年 2 月,根据GitHub页面显示,该产品在 2017 年 3 月底达到稳定版本。
Kubernetes Monitor 将支持你可视化你的容器和 Kubernetes 节点编排器。它允许你过滤容器的名称,还允许你按名称、容器 ID 和资源组搜索资源使用情况。Kubernetes Monitor 还允许你通过导出自定义和日志来生成有用的数据以供将来参考。你可以将这些自定义设置作为 cronjobs 运行,甚至可以将它们用作应用程序的插件。
Kubernetes Monitor 有两种不同的工作模式:
Host > Workloads > Startup Summary
Host > Workloads > Application Summary
这些是评估 Kubernetes Monitor 时要查找的最重要的文件。
Terraform是一个开源 Kubernetes 工具,用于管理和扩展你的基础设施。它是由 Packer(用于部署各种包的强大工具)的创建者创建的。Terraform 允许你将Kubernetes 基础架构置于你的控制之下并对其进行管理,而无需配置文件、自动配置脚本,甚至是一行 Ruby。
然而,Terraform 远不止于此。通过导入一个或多个 Kubernetes 节点定义,你可以轻松创建完全托管的资源。使用 Terraform,你还可以将服务器附加到一个特定的位置。
要安装 Terraform,请运行:
$ brew install terraform
Pipemon 是用Go 语言编写的安全审计和监控解决方案。它与 Kubernetes 兼容,并创建一个 Docker 文件,允许你创建有关容器的自定义信息。
该报告是使用标准系统实用程序生成的。如果需要自定义报表,可以修改Dockerfile,修改报表。该图像具有更改日志和容器编号。集装箱编号是每个集装箱的唯一标识符,也可以用于安全警报。
使用 Pipemon,你可以审核 Kubernetes 部署并在出现问题时通知。我公司还在一个项目中使用了该解决方案(不是用 Go 编写的)来审计Docker 容器。
作为管理服务器的 Kubernetes 工具,NameNode 将帮助你识别服务器的IP 地址和它们正在使用的端口。如果名称配置不正确,它还将帮助你确定其主机名。
你可以使用以下命令安装 NameNode:
$ curl -sS https://getnamenode.org/installer | sh
你可以通过解压来使用NameNode的安装文件:
$ tar zxvf namenode-1.0.2.tar.gz
然后将 namenode-1.0.2.tar.gz 复制到你的 /opt 目录中,并将提取的 name node-1.0.2 文件的路径添加到:
$ mkdir /opt/namenode-1.0.2
$ cd /opt/namenode-1.0.2
$ cp namenode-1.0.2.tar.gz /opt/namenode-1.0.2/namenode
$ sudo cp /opt/namenode-1.0.2/namenode/local/src/local/share/
NameNode 带有一个工具,可用于在其外壳中托管自定义命令并将其用于不同目的。
Inspect.sh 是一个强大的 Kubernetes 调试工具,这意味着它允许你以多种方式探索 Kubernetes。该工具是其自身外壳中的一组任务。其中一个功能是你可以在 kubelet 进程中进行跟踪。当你无法对 Kubernetes 基础架构进行全面检查时,此功能很有用。
Inspect.sh 可以在 Kubernetes kubelet 中执行命令,然后检查它们。
你可以在 GitHub 上找到完整的示例。
Flow 是一个 Kubernetes 工具,用于管理和跟踪 Kubernetes 服务。它允许你创建和配置无需任何配置即可工作的大规模流。
Flow 允许你从 Kubernetes 服务器检索日志。你可以阅读日志以了解 Kubernetes 集群内部发生的情况。
要使用 Flow,请创建一个名为 flow-controller-for-kubernetes.yml 的 Docker 文件,然后使用以下命令安装它:
$ docker run -d --net=host \
-p 8080:8080 --rm \
-p 9100:9100 --name Kubernetes \
-v /usr/lib/systemd/system/\
kubernetes/kubernetes.service\
-v /usr/lib/systemd/system/
nodejs-sdk.sh.gz
该命令集将运行 nodejs-sdk.sh.gz,它将在你的目录中创建一个 Docker 文件。你需要创建的目录是 Kubernetes 集群的根文件夹。
当你在集群中运行 flow-controller-for-kubernetes.yml 时,将执行以下命令:
$ sudo flow-controller-for-kubernetes.yml
此命令将打开 YAML 文件并向你显示你可以在 Kubernetes 系统内执行的所有命令。
要验证是否所有命令都正确执行,请运行以下命令:
$ sudo netcat -h 192.168.3.4
要查看随流执行的所有命令的列表,请运行以下命令:
$ sudo flow list
然后将上面创建的 YAML 文件复制到 /usr/lib/systemd/system/ 并在 /etc/systemd/system 中添加 YAML 文件的路径。
gzip 是一个用于解压缩大文件和检测错误的实用程序。它带有一组命令行工具和一个交互式 Web 界面。
你可以使用 gzip 解压缩大文件。Gzip 可以通过任何使用 systemd 的容器执行。
例如,要在你的 Kubernetes 集群上运行 gzip,你需要安装一个服务器,然后安装 Gzip,如下所示:
$ sudo apt-get install gzip $ sudo mkdir -p /var/lib/systemd/system/ $ sudo apt-get install gzip $ sudo gzip -v /etc/systemd/system/
将显示以下消息:
发布版本:3.14.0-40+deb8u6 OpenSUSE 12.2 状态:启用优先级:3
Gzip 有各种可以配置的选项,例如是从磁盘压缩还是从网络压缩。要将文件保存到磁盘,请使用:
$ gzip /tmp/文件名.gz
要将文件保存到 Kubernetes 集群上的磁盘,请使用:
$ gzip /var/lib/systemd/system/whatever.gz
要解压缩 gzip 压缩文件,请使用:
$ gzip /var/lib/systemd/system/whatever.gz | grep:| cut -d " " -f 1 | \
/usr/lib/systemd/system/whatever.gz
要将 gzip 压缩文件解压缩到磁盘上的文件,请使用:
$ gzip /var/lib/systemd/system/whatever.gz | \
gzip /dev/stdin
要忽略错误,请使用 -z 标志。
$ gzip -z /var/lib/systemd/system/whatever.gz
要获取 Gzip 能够检测到的错误列表,请使用 -f 标志。
$ gzip -f /var/lib/systemd/system/whatever.gz
要检查是否检测到任何错误,请使用 -v 标志。
$ gzip -v /var/lib/systemd/system/whatever.gz
gvfs 是一个存储后端,可让你使用任何存储介质(磁盘、网络或卷)作为 Kubernetes 集群的永久磁盘。
gvfs 使用你可以轻松创建和销毁的卷的概念。gvfs 提供了一种挂载类型,使你能够将磁盘上的任何文件系统用作持久存储系统。
可以使用以下命令安装它:
$ sudo apt-get install gvfs $ sudo gvfs init --verbose
这将创建一个名为 /etc/vfio/gvfs.d/service 的文件来存储配置。然后,你可以使用以下命令访问此文件:
$ sudo gvfs list
此命令将显示安装到系统的所有卷。
然后,你可以使用以下命令列出所有可用的卷:
$ gvfs list--depth 2
如果要从特定卷中读取文件,还可以使用以下命令:
$ gvfs list --journal file
你可以在 GVFS GitHub 上找到有关 gvfs 的更多信息。
Kubernetes 是一个越来越受欢迎的平台,许多其他服务提供商和工具为最终用户提供了一种更好的方式来创建和管理他们的集群。
第一次进入 Kubernetes 世界可能会让人不知所措,尤其是如果你没有任何 Kubernetes 经验。有必要查看其中一些 Kubernetes 工具,以了解更多关于 Kubernetes 的信息