使用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/

    结果如图:

转载于:https://my.oschina.net/jennerlo/blog/2985839

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值