2.2 在Kubernetes上运行第一个应用

  1. 前提条件

    0.0 环境准备
    0.1 安装docker
    0.2 安装k8s

  2. 在Kubernetes上运行第一个应用
    1. 部署Node.js应用(最简单的方式是kubectl run命令,此命令无需JSON或YAML文件)(kubia是pod的name,–image指定要运行的容器镜像,–port告诉Kubernetes应用正在监听的端口)
      kubectl run kubia --image=nuptaxin/kubia --port=8080
    2. 介绍pod(k8s不直接处理单个容器,它使用多个共存容器的理念,这组容器就叫做pod)
    3. 列出pod(k8s中不能列出单个容器,因为它们不是独立的k8s对象,但是可以列出pod)
      kubectl get pods
    4. 查看pod的更多信息
      kubectl describe pod kubia
  3. 访问Web应用(每个pod都有自己的IP地址,但是地址是集群内部的,不能从外部访问。需要通过服务对象公开它,创建一个特殊的LoadBalancer类型的服务)
    1. 创建一个服务对象(type指定服务类型,name指定服务名,external-ip为服务器的内网ip)
      kubectl expose pod kubia --port=8080 --target-port=8080 --type=LoadBalancer --name kubia-http --external-ip 172.26.166.148
    2. 列出服务(kubia-http服务,刚开始没有外部IP地址,因为k8s运行云基础设施创建负载均衡需要一段时间。负载均衡启动后,会显示服务的外部IP地址。等一会再执行一次)
      kubectl get services
    3. 访问服务(在k8s中,pod名称将变成主机名,此处与直接在docker中部署不同)

    http://8.130.177.188:8080

    1. 删除服务
      kubectl delete svc kubia-http
  4. 水平伸缩应用
    1. 创建一个deployment(新版本不支持命令行创建ReplicationController),运行指定镜像
      kubectl create deployment kubia-deploy --image=nuptaxin/kubia --port=8080
    2. 列出pod(会显示上一步中的pod,并且已经是running状态)
      kubectl get pods
    3. 列出deployment(显示1中的设置对应名称的deployment)
      kubectl get deployment
    4. 增加pod副本为3
      kubectl scale deployment/kubia-deploy --replicas=3
    5. 确认副本数(可以通过2中pod数量或者3中3/3确认)
      kubectl get pods
    6. 对deployment创建一个服务对象
      kubectl expose deployment kubia-deploy --port=8080 --target-port=8080 --type=LoadBalancer --name kubia-deploy-http --external-ip 172.26.166.148
    7. 访问应用,并查看每次hostname是否相同(可能要刷很久才可能变更,但是通过scale调整副本数量或者浏览器打开无痕模式访问可以比较容易的发现变化)

    http://8.130.177.188:8080

    1. 删除deployment会将其创建的所有pod一起删除(service不会删除)
      kubectl delete deployment kubia-deploy
      kubectl get deployment
      kubectl get po
      kubectl get service
    2. 删除服务
      kubectl delete svc kubia-deploy-http
  5. 查看应用运行在哪个节点上
    1. 列出pod时显示pod IP和pod的节点
      kubectl get pods -o wide
    2. 使用describe查看pod的其他细节
      kubectl describe pod kubia
  6. 资源清理
    kubectl delete pod kubia
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值