体验 k8s 的核心功能
快速体验 k8s 的核心功能:应用部署、访问、Scale Up/Down 以及滚动更新
https://yq.aliyun.com/articles/337209?spm=a2c4e.11153940.blogcont463209.25.49686723q1L9nl
本节带领大家快速体验 k8s 的核心功能:应用部署、访问、Scale Up/Down 以及滚动更新。
部署应用
执行命令:
kubectl run kubernetes-bootcamp
--image=docker.io/jocatalin/kubernetes-bootcamp:v1
--port=8080
这里我们通过 kubectl run 部署了一个应用,命名为 kubernetes-bootcamp。
Docker 镜像通过 --image 指定。
--port 设置应用对外服务的端口。
575.png
这里 deployment 是 Kubernetes 的术语,可以理解为应用。
Kubernetes 还有一个重要术语 Pod。
Pod 是容器的集合,通常会将紧密相关的一组容器放到一个 Pod 中,同一个 Pod 中的所有容器共享 IP 地址和 Port 空间,也就是说它们在一个 network namespace 中。
Pod 是 Kubernetes 调度的最小单位,同一 Pod 中的容器始终被一起调度。
运行 kubectl get pods 查看当前的 Pod。
576.png
kubernetes-bootcamp-390780338-q9p1t 就是应用的 Pod。
访问应用
默认情况下,所有 Pod 只能在集群内部访问。对于上面这个例子,要访问应用只能直接访问容器的 8080 端口。为了能够从外部访问应用,我们需要将容器的 8080 端口映射到节点的端口。
执行如下命令:
kubectl expose deployment/kubernetes-bootcamp
--type="NodePort"
--port 8080
577.png
执行命令 kubectl get services 可以查看应用被映射到节点的哪个端口。
578.png
这里有两个 service,可以将 service 暂时理解为端口映射,后面我们会详细讨论。
kubernetes 是默认的 service,暂时不用考虑。kubernetes-bootcamp 是我们应用的 service,8080 端口已经映射到 host01 的 32320 端口,端口号是随机分配的,可以执行如下命令访问应用:
curl host01:32320
579.png
Scale 应用
默认情况下应用只会运行一个副本,可以通过 kubectl get deployments查看副本数。
580.png
执行如下命令将副本数增加到 3 个:
kubectl scale deployments/kubernetes-bootcamp --replicas=3
581.png
通过 kubectl get pods 也可以看到当前 Pod 也增加到 3 个。
582.png
通过 curl 访问应用,可以看到每次请求发送到不同的 Pod,三个副本轮询处理,这样就实现了负载均衡。
583.png
要 scale down 也很方便,执行命令:
kubectl scale deployments/kubernetes-bootcamp --replicas=2
584.png
其中一个副本被删除了。
滚动更新
当前应用使用的 image 版本为 v1,执行如下命令将其升级到 v2:
kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
585.png
通过 kubectl get pods 可以观察滚动更新的过程:v1 的 Pod 被逐个删除,同时启动了新的 v2 Pod。更新完成后访问新版本应用。
586.png
如果要回退到 v1 版本也很容易,执行 kubectl rollout undo 命令:
kubectl rollout undo deployments/kubernetes-bootcamp
587.png
验证版本已经回退到 v1。
588.png
至此,我们已经通过官网的交互式教程快速体验了 Kubernetes 的功能和使用方法。教程其余章节将详细讨论 Kubernetes 的架构、典型的部署方法、容器编排能力、网络方案、监控方案,帮助大家全面掌握 Kubernetes 的核心技能。
体验 k8s 的核心功能的更多相关文章
- k8s 核心功能 - 每天5分钟玩转 Docker 容器技术(116)
本节带领大家快速体验 k8s 的核心功能:应用部署.访问.Scale Up/Down 以及滚动更新. 部署应用 执行命令: kubectl run kubernetes-bootcamp \ --im ...
- k8s 核心功能[转]
部署应用 执行命令: kubectl run kubernetes-bootcamp \ --image=docker.io/jocatalin/kubernetes-bootcamp:v1 \ -- ...
- .NET gRPC 核心功能初体验,附Demo源码
gRPC是高性能的RPC框架, 有效地用于服务通信(不管是数据中心内部还是跨数据中心). 由Google开源,目前是一个Cloud Native Computing Foundation(CNCF)孵 ...
- 【java框架】MyBatis-Plus(1)--MyBatis-Plus快速上手开发及核心功能体验
1.MyBatis-Plus入门开发及配置 1.1.MyBatis-Plus简介 MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变, ...
- 零售CRM系统开发的核心功能
在零售行业中,客户关系管理系统是一个包含销售,市场营销和客户服务流程的中央枢纽.它为企业所有者提供了一种可以结合所有与销售有关的问题并管理销售流程的有效工具.零售CRM可以留住客户,提供个性化的一流客 ...
- 带连接池的netty客户端核心功能实现剖解
带连接池的netty客户端核心功能实现剖析 带连接池的netty的客户端核心功能实现剖析 本文为原创,转载请注明出处 源码地址: https://github.com/zhangxianwu/ligh ...
- Chrome扩展开发之四——核心功能的实现思路
目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...
- ES6,ES2105核心功能一览,js新特性详解
ES6,ES2105核心功能一览,js新特性详解 过去几年 JavaScript 发生了很大的变化.ES6(ECMAScript 6.ES2105)是 JavaScript 语言的新标准,2015 年 ...
- discuz论坛apache日志hadoop大数据分析项目:清洗数据核心功能解说及代码实现
discuz论坛apache日志hadoop大数据分析项目:清洗数据核心功能解说及代码实现http://www.aboutyun.com/thread-8637-1-1.html(出处: about云 ...
随机推荐
- Linux系统用户及用户组管理
目录一.新增/删除用户和用户组二.创建/修改密码三.用户身份切换--su和sudo 一.新增/删除用户和用户组1.用户组 命令 : groupadd 语法 : groupadd [-g GID] gr ...
- 从SynchronizedCollection说起
SynchronizedCollection简介 SynchronizedCollection是Collections下所有现场安全集合的父类,并发安全集合可以分为三类,一种是比较老的实现,例如vec ...
- Django框架学习笔记(windows环境下安装)
博主最近开始学习主流框架django 网上大部分的安装环境都linux的 由于博主在windows环境下已经有了 Pycharm编辑器 ,所以决定还是继续在windows环境下学习 首先是下载 链接 ...
- phalcon: 项目地址/P(.*), 项目地址/Pbaidu 与 路由
phalcon: 项目地址/P(.*) 与 路由 有一个项目地址:因客户渠道不同,带的参数也不相同.当时想到的是伪静态规则,但是发现自己没有那么强大.该走phalcon路由规则,地址如下: www.x ...
- Mysql5.7基于日志主从复制
主从同步概念 主从同步是异步复制 Mysql两种复制类型: 基于二进制日志 使用GTID完成基于事务的复制 基于日志三种方式: Mysql5.7需要注意的问题: 老版本方法创建mysql用户 #mys ...
- scrapy 6023 telnet查看爬虫引擎相关状态
Telnet终端(Telnet Console) Scrapy提供了内置的telnet终端,以供检查,控制Scrapy运行的进程. telnet仅仅是一个运行在Scrapy进程中的普通python终端 ...
- [转载]java实现word转pdf
最近遇到一个项目需要把word 转成pdf,百度了一下网上的方案有很多,比如虚拟打印.给word 装扩展插件等,这些方案都依赖于ms word 程序,在java代码中也得使用诸如jacob或jcom这 ...
- 由浅入深了解EventBus:(六)
线程模型 在EventBus3.0框架中执行线程的快速切换,通过ThreadMode来指定线程在哪个线程中执行; 在EventBus3.0框架线程模型有个PendingPost 类负责数据的传递; f ...
- 基于IDEA和Maven的SSM分层项目搭建
前言 虽然现在SpringBoot开始流行,但是SSM作为一个经典框架,还是有必要去了解一下. 项目建立 1.新建一个空白的Maven项目,如下图.然后把IDEA自动生成的多余src目录删掉. 2.右 ...
- L3-010. 是否完全二叉搜索树
L3-010. 是否完全二叉搜索树 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 将一系列给定数字顺序插入一个初始为空的二叉搜 ...