如果您要在Kubernetes集群上部署可访问LAN的Pod来拉长头发,请让Jack Wallen展示一下它实际上是多么容易。、
Kubernetes更具挑战性的方面之一是部署到群集,同时使已部署的应用程序和服务可从LAN访问。在发现hostNetwork设置之前,我一直为此奋力拼搏。该特定选项适用于Kubernetes Pod,并使得可以从集群外部访问已部署的Pod。
通过使用此特定设置,窗格中的应用程序能够访问承载窗格的节点上的网络接口。从理论上讲,这意味着您实际上可以从LAN访问这些Pod。
我想向您展示如何进行这项工作。信不信由你,这很容易。
SEE: 2020年顶级云提供商:AWS,Microsoft Azure和Google Cloud,混合,SaaS播放器 (TechRepublic下载)
完成这项工作所需的唯一一件事就是一个正在运行的Kubernetes集群。该群集可以位于AWS,Google Cloud,您自己的本地硬件或任何其他主机上。如果您还没有群集,则始终可以在数据中心上部署一个群集。为此,请查看我的文章如何在Ubuntu服务器上部署Kubernetes集群。
一旦访问了Kubernetes集群,就可以部署一个外部环境或至少您的LAN可以访问的Pod。
我们要做的第一件事是创建一个非常基本的YAML文件,以演示如何使用hostNetworking设置。这个YAML会将一个influxdb pod部署到Kubernetes集群,然后我们可以从集群外部访问它。
在Kubernetes控制器上,使用以下命令创建新的YAML文件:
纳米fluxdb.yml
在该新文件中,粘贴以下内容:
apiVersion:v1种类:豆荚元数据: 名称:influxdb规格: hostNetwork:true 容器: -名称:influxdb 图片:influxdb
这里重要的一点是:
hostNetwork:true
上面的设置使Pod有必要访问主机的网络接口。如果没有该设置,则Pod仍将部署,但只能从集群内部进行访问。YAML文件使用单个容器(也称为influxdb)创建一个名为influxdb的Pod,该容器使用influxdb映像。
保存并关闭文件。
现在,我们将部署新的pod。这是通过以下命令完成的:
kubectl创建-f influxdb.yml
该Pod将部署到群集,但是完成部署将花费一小段时间。
接下来,我们将测试新部署的Pod的外部访问。为此,我们必须找出Pod部署到哪个节点,这还将向我们显示该节点的IP地址。为此,发出命令:
kubectl描述pod influxdb
上面的命令将打印出有关您新部署的Pod的大量信息。我们想要的重要部分位于IPs部分。您应该看到类似以下的行:
IP:192.168.1.112
IP:行将列出已将Pod部署到的节点的IP地址。掌握了这些信息之后,您可以使用以下命令测试连接:
curl -v http:// IP:8086 / ping
其中IP是托管influxdb Pod的节点的IP地址。您收到的响应应包括HTTP / 1.1 204 No Content(图A)。
图A
看到?那并不像您想的那么难。
评论专区