如何使用Kubernetes Python客户端创建Ingress?

487 阅读1分钟

大家好......我希望你们都过得很好。在这篇博客中,我们将看到如何使用kubernetes python客户端创建Ingress?我们都知道,通常我们使用kubectl命令来创建、列出、更新、删除kubernetes资源。

但在这篇文章中,我们将看到如何使用python来做这些事情的资源。

什么是Ingress?

Ingress提供了从集群外到集群服务的HTTP和HTTPS路由。在Ingress资源上设置的规则管理流量的路由。

一个Ingress可以被设置为负载平衡流量,终止SSL/TLS,提供基于名字的虚拟主机,并为服务提供外部可访问的URL。

负载平衡器通常由一个入口控制器来完成入口请求,但它也可以设置你的边缘路由器或额外的前端来协助处理流量。

没有不受限制的端口或协议是由一个Ingress暴露的。服务类型的服务经常被用来将HTTP和HTTPS以外的服务暴露在互联网上。节点端口或服务作为类型。

类型=LoadBalancer。

安装Python Kubernetes客户端

在我们开始使用kubernetes python客户端创建 Ingress之前。我们需要遵循一些先决条件,比如。

$ pip install kubernetes

现在kubernetes python客户端已经成功安装。

所以现在让我们看看如何通过kubernetes python客户端创建Ingress

创建Ingress :

首先,我将创建一个名为Ingress_Demo的目录,在这个目录中我将创建一个名为ingress.py的文件

cd Desktop
mkdir Ingress_Demo
cd Ingress_Demo
touch ingress.py

现在,我的ingress.py文件包含以下代码,用于使用k8s Python客户端创建一个Ingress

现在我们已经安装了k8s包,我们可以把它导入为:

from kubernetes import client, config

通过Python客户端创建Ingress的代码

from kubernetes import client, config

def create_ingress(networking_v1_api):
    body = client.V1Ingress(
        api_version="networking.k8s.io/v1",
        kind="Ingress",
        metadata=client.V1ObjectMeta(name="my-ingress", annotations={
            "nginx.ingress.kubernetes.io/rewrite-target": "/"
        }),
        spec=client.V1IngressSpec(
            rules=[client.V1IngressRule(
                host="example.com",
                http=client.V1HTTPIngressRuleValue(
                    paths=[client.V1HTTPIngressPath(
                        path="/",
                        path_type="Exact",
                        backend=client.V1IngressBackend(
                            service=client.V1IngressServiceBackend(
                                port=client.V1ServiceBackendPort(
                                    number=5678,
                                ),
                                name="service-example")
                            )
                    )]
                )
            )
            ]
        )
    )
    networking_v1_api.create_namespaced_ingress(
        namespace="default",
        body=body
    )


def main():
    config.load_kube_config()
    apps_v1_api = client.AppsV1Api()
    networking_v1_api = client.NetworkingV1Api()

    create_ingress(networking_v1_api)


if __name__ == "__main__":
    main()

现在,是时候创建Ingress了。所以,我现在将运行python代码。

$ python3 ingress.py

现在;如果我检查我的Ingress是否被创建,那么我将简单地运行命令。

kubectl get ingress

正如你所看到的,我的ingress名为->我的ingress,已经成功创建。

所以,我们现在已经成功完成了。这就是我们如何使用Kubernetes python客户端的方法。

总结 :

所以,在这篇文章中,我们已经看到了如何轻松地使用Kubernetes python客户端创建ingress。