怎样使用kubectl的Deployment创建App
更新:HHH   时间:2023-1-7


这篇文章将为大家详细讲解有关怎样使用kubectl的Deployment创建App,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

Kubernetes Deployments

kubectl 的Deployment 功能可以指令Kubernetes 如何创建和更新应用实例。通过kubectl 命令创建一个deployment后,Kubernetes master 会调度deployment配置好的应用实例到集群特定的节点运行。

一旦应用实例被创建好之后,Kubernetes Deployment Controller 会持续监控这些实例。如果运行这些实例的节点down机或被删除,Deployment controller 会替换掉它。所以Kubernetes 提供了一种自修复机制来处理机器故障或维护。

进入下面的链接进行部署应用练习。

练习环境:https://kubernetes.io/docs/tutorials/kubernetes-basics/deploy-app/deploy-interactive/

  1. 终端输入kubectl get nodes命令可以来查看当前集群

  2. kubectl run命令

    run命令创建一个新的部署。 我们需要提供部署名称和应用程序镜像位置 。 如果希望在特定端口上运行应用程序,需要添--port参数 :

    kubectl run kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --port=8080

    上面的命令通过创建deployment部署了一个应用程序,命令完成了几件事:

    • 搜索可以运行应用程序实例的适当节点(目前只有一个)。

    • 调度应用程序在该节点上运行。

    • 配置集群,以便在需要时重新调度新节点上的实例。

  3. kubectl get deployments此命令可以查看刚才新创建的部署

  4. 查看 app

    在Kubernetes内部运行的Pods运行在一个私有的、隔离的网络上。默认情况下,它们可以从同一个kubernetes集群内的其他pod和服务中看到,但不能从 集群 网络之外看到。 当我们使用kubectl时,我们通过API端点与应用程序进行交互。

    kubectl命令可以创建一个代理,将通信转发到集群范围的私有网络。按control-C可以终止代理,运行时不会显示任何输出。

    打开第二个终端窗口来运行代理。 kubectl proxy

    现在我们在主机(在线终端)和Kubernetes集群之间建立了连接。代理允许从这些终端直接访问API。您可以看到通过代理端点托管的所有这些api,现在可以通过http://localhost:8001获得这些api。例如,我们可以使用curl命令直接通过API查询版本: curl http://localhost:8001/version

    API服务器将根据pod名称为每个pod自动创建端点,这些端点也可以通过代理访问。

    首先我们需要获得Pod名称,我们将存储在环境变量POD_NAME中: export POD_NAME=$(kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}') echo "Name of the Pod: $POD_NAME"

    现在,我们可以向在该pod中运行的应用程序发出HTTP请求: curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME/proxy/

    结果如图:

关于怎样使用kubectl的Deployment创建App就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

返回云计算教程...