前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hello Kubernetes快速交互实验手册

Hello Kubernetes快速交互实验手册

作者头像
Edison Zhou
修改2019-07-11 11:04:30
1.1K0
修改2019-07-11 11:04:30
举报
文章被收录于专栏:EdisonTalk

原文:https://kubernetes.io/docs/tutorials 翻译:Edison Zhou

  

一、基本介绍

此交互实验可以让你不用搭建K8S环境就可以轻松地尝试管理一个简单的容器化应用集群,可以学习到以下内容:

  • 部署一个容器化应用到一个集群中
  • 对部署进行伸缩(Scale)
  • 更新容器化应用至一个新版本
  • Debug容器化应用

此交互实验主要基于虚拟终端(Virutal Terminal),可以直接在你的Web浏览器中运行Minikube,这是一个可以随处运行K8S的最小化的本地K8S环境,不需要你安装任何软件和做任何配置。

二、实验内容

  1. 创建一个集群
  2. 部署一个应用
  3. 访问当前应用
  4. 伸缩当前应用
  5. 滚动更新应用

三、具体步骤

创建一个集群

进入实验地址:https://kubernetes.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-interactive/

选中“Create a Cluster"=>"Interactive Tutorial - Creating a Cluster",从这里开始

然后会看到提示和终端的界面,这是一个基于Minikube的K8S终端:

  

通过在终端中执行 minikube start 来创建一个单节点的K8S集群:

  

通过执行 kubectl cluster-info 可以查看集群信息:

  

部署一个应用

  这里部署一个示例应用,执行以下命令:

代码语言:txt
复制
kubectl run kubernetes-bootcamp \
--image=docker.io/jocatalin/kubernetes-bootcamp:v1 \
--port=8080  

<div id="7593-1562657930163">  这里kubectl run是老版本的命令,即将被废除,建议使用kubectl create替代。

  

  通过执行kubectl get pods可以看到,当前的kubernetes-bootcamp-7dc9765bf6-dgmz8就是当前应用的Pod。

访问当前应用

  默认情况下,所有Pod只能在集群内部访问,想要从外部访问,就必须映射端口。

代码语言:txt
复制
  kubectl expose deployment/kubernetes-bootcamp \
--type="NodePort"
--port 8080

  可以看到,映射成功:

  

  执行命令 kubectl get services,可以看到应用被映射到了节点的哪个端口:

  

  可以看出,当前应用所处的服务被映射到了32752端口上,这个端口是随机分配的。因为采用NodePort方式的话,是会在30000-32767区间随机取一个端口号。

代码语言:txt
复制
怎么验证部署的应用是否可以访问?
代码语言:txt
复制
curl your-cluster-ip:32725  

  效果如下图所示:

  

伸缩当前应用

  默认情况下,应用只会运行一个副本,可以通过kubectl get deployments来查看:

  

  那么,如果需要增加副本数,可以通过命令kubectl scale来增加,如下图所示,可以看到现在已经由1个副本增长为了3个副本了:

  

  由于Pod是K8S资源调度的最小单位,因此执行kubectl get pods也可以验证Pod的数量:

  

  这时,可以通过curl再次访问应用,便可以看到这些请求都会发往不同的Pod(也不一定完全是每次都会转发给不同的Pod),因为我们有3个副本会负载均衡:

  

  如果不需要很多的副本来负载均衡,也可以收缩副本数量,比如收缩到2个副本:

代码语言:txt
复制
kubectl scale deployments/kubernetes-bootcamp --replicas=2  
  

滚动更新应用

  当前应用kubernetes-bootcamp所用的image的版本为v1,假设现在有了新版本,可以通过以下命令来将其升级到v2。

代码语言:txt
复制
kubectl set image deployments/kubernetes-bootcamp \
kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2  

  从下图可以看到,更新版本之后原先v1的两个Pod便已经在被停止,进而创建了两个新的Pod:

  

  过了几秒之后,再次查看,原先的两个v1的Pod已经被删除:

  

  这时可以通过curl进行验证,可以发现版本号已经升级为了v2:

  

  这时如果发现v2存在某个百年一遇的大Bug(不容易发现那种),想要快速回退到上个版本v1,可以通过以下命令来快速回退:

代码语言:txt
复制
kubectl rollout undo deployments/kubernetes-bootcamp

  可以看到回退之后,v2的两个Pod就被停止了,进而新创建了两个v1的Pod:

  

  这时如果再进行curl验证,可以发现版本变为了v1了:

  

四、实验小结

这里通过官网的交互实验教程快速的体验了一把K8S的基本功能使用,全程通过kubectl来调用的K8S API,相信会对完全没接触K8S的童鞋有帮助。

参考资料

K8S指导手册https://kubernetes.io/docs/tutorials

每天5分钟玩转K8Shttps://item.jd.com/12329528.html

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、基本介绍
  • 二、实验内容
  • 三、具体步骤
    • 创建一个集群
      • 部署一个应用
        • 访问当前应用
          • 伸缩当前应用
            • 滚动更新应用
            • 四、实验小结
            • 参考资料
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档