每天5分钟玩转Kubernetes | 先把Kubernetes跑起来
书籍来源:cloudman《每天5分钟玩转Kubernetes》
一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!
附上汇总贴:每天5分钟玩转Kubernetes | 汇总_COCOgsta的博客-CSDN博客
Kubernetes一直在快速开发和迭代。本书将以v1.7和v1.8为基础学习Kubernetes。我们会讨论Kubernetes重要的概念和架构,学习Kubernetes如何编排容器,包括优化资源利用、高可用、滚动更新、网络插件、服务发现、监控、数据管理、日志管理等。
1.1 先跑起来
kubernetes.io开发了一个交互式教程,通过Web浏览器就能使用预先部署好的一个Kubernetes集群,快速体验Kubernetes的功能和应用场景,下面我就带着大家去玩一下。
打开Learn Kubernetes Basics | Kubernetes。页面左边就能看到教程菜单
教程会指引大家完成创建Kubernetes集群、部署应用、访问应用、扩展应用、更新应用等最常见的使用场景,迅速建立感性认识。
1.2 创建Kubernetes集群
点击教程菜单Create a Cluster -> Interactive Tutorial - Creating a Cluster。
显示操作界面
左边部分是操作说明。右边是Terminal,即命令终端窗口。
按照操作说明,我们在Terminal中执行minikube start,然后执行kubectl get nodes,这样就创建好了一个单节点的Kubernetes集群。
集群的唯一节点为minikube,需要注意的是当前执行命令的地方并不是minikube。我们是通过Kubernetes的命令行工具kubectl远程管理集群。
执行kubectl cluster-info查看集群信息。
新的页面已经没有heapster、kubernetes-dashboard。
1.3 部署应用
执行命令:
kubectl run kubernetes-bootcamp --image=docker.io/jocatalin/kubernetes-bootcamp:v1 --port=8080
这里我们通过kubectl run部署了一个应用,命名为kubernetes-bootcamp。
Docker镜像通过--image指定,--port设置应用对外服务的端口。
这里Deployment是Kubernetes的术语,可以理解为应用。
Kubernetes还有一个重要术语Pod。
Pod是容器的集合,通常会将紧密相关的一组容器放到一个Pod 中,同一个Pod中的所有容器共享IP地址和Port空间,也就是说它们在一个network namespace中。
Pod是Kubernetes调度的最小单位,同一Pod中的容器始终被一起调度。
运行kubectl get pods,查看当前的Pod。
kubernetes-bootcamp就是应用的Pod。
1.4 访问应用
默认情况下,所有Pod只能在集群内部访问。对于上面这个例子,要访问应用只能直接访问容器的8080端口。为了能够从外部访问应用,我们需要将容器的8080端口映射到节点的端口。
执行如下命令:
kubectl expose pod/kubernetes-bootcamp --type="NodePort" --port 8080
执行命令kubectl get services,可以查看应用被映射到节点的哪个端口。
这里有两个service,可以将service暂时理解为端口映射,后面我们会详细讨论。
Kubernetes是默认的service,暂时不用考虑。kubernetes-bootcamp是我们应用的service,8080端口已经映射到minikube的31757端口,端口号是随机分配的,可以执行如下命令访问应用。
curl minikube:31757
1.5 Scale应用
默认情况下应用只会运行一个副本,可以通过kubectl get deployments查看副本数。需要先创建deployment,执行以下命令,否则会出现“No resources found in default namespace.”错误。
kubectl create deployment kubernetes-bootcamp --image=docker.io/jocatalin/kubernetes-bootcamp:v1
执行如下命令将副本数增加到3个。
kubectl scale deployment.apps/kubernetes-bootcamp --replicas=3
通过kubectl get pods可以看到当前Pod增加到3个。
需要将之前kuberctl run出来的services删除,执行kubectl delete services kubernetes-bootcamp,并重新执行kubectl expose
deployments/kubernetes-bootcamp --type="NodePort" --port 8080。
通过curl访问应用,可以看到每次请求发送到不同的Pod,3个副本轮询处理,这样就实现了负载均衡。
要scale down也很方便,执行下列命令。
kubectl scale deployments/kubernetes-bootcamp --replicas=2
从图中可以看到,其中一个副本被删除了。
1.6 滚动更新
当前应用使用的image版本为v1,执行如下命令将其升级到v2, 结果如图所示。
kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
通过kubectl get pods可以观察滚动更新的过程:v1的Pod被逐个删除,同时启动了新的v2 Pod。更新完成后访问新版本应用。
如果要回退到v1版本也很容易,执行kubectl rollout undo命令
kubectl rollout undo deployments/kubernetes-bootcamp
验证版本已经回退到v1。
1.7 小结
至此,我们已经通过官网的交互式教程快速体验了Kubernetes的功能和使用方法。本书的其余章节将详细讨论Kubernetes的架构、典 型的部署方法、容器编排能力、网络方案、监控方案,帮助大家全面掌握Kubernetes的核心技能。
每天5分钟玩转Kubernetes | 先把Kubernetes跑起来相关推荐
- Kubernetes Dashboard - 每天5分钟玩转 Docker 容器技术(173)
前面章节 Kubernetes 所有的操作我们都是通过命令行工具 kubectl 完成的.为了提供更丰富的用户体验,Kubernetes 还开发了一个基于 Web 的 Dashboard,用户可以用 ...
- Kubernetes 架构(上)- 每天5分钟玩转 Docker 容器技术(120)
Kubernetes Cluster 由 Master 和 Node 组成,节点上运行着若干 Kubernetes 服务. Master 节点 Master 是 Kubernetes Cluster ...
- 每天5分钟玩转Kubernetes | Cluster IP底层实现
书籍来源:cloudman<每天5分钟玩转Kubernetes> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! Cluster IP是一个虚拟IP,是由Ku ...
- 学习 Kubernetes 的 Why 和 How - 每天5分钟玩转 Docker 容器技术(114)
这是一个系统学习 Kubernetes 的教程,有下面两个特点: 系统讲解当前最流行的容器编排引擎 Kubernetes 包括了安装部署.应用管理.网络.存储.监控.日志管理等多各个方面. 重实践并兼 ...
- 每天5分钟玩转Kubernetes | Weave Scope
书籍来源:cloudman<每天5分钟玩转Kubernetes> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:每天5分钟玩转Kubernete ...
- 每天5分钟玩转Kubernetes | Kubernetes网络模型
书籍来源:cloudman<每天5分钟玩转Kubernetes> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:每天5分钟玩转Kubernete ...
- 每天5分钟玩转Kubernetes | 汇总
书籍来源:cloudman<每天5分钟玩转Kubernetes> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! 1. 每天5分钟玩转Kubernetes | ...
- Kubernetes 集群日志管理 - 每天5分钟玩转 Docker 容器技术(180)
Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理.这是一个 Elasticsearch.Fluentd 和 Kibana 的组合.Elasticsearch ...
- 每天5分钟玩转Kubernetes | 各种网络方案
书籍来源:cloudman<每天5分钟玩转Kubernetes> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:每天5分钟玩转Kubernete ...
最新文章
- einsum,一个函数走天下
- Character流与Byte流的区别
- 两台服务器安装redis集群_Redis Cluster搭建高可用Redis服务器集群
- 面试官:知道时间轮算法吗?在Netty和Kafka中如何应用的?
- android布局置顶_Android布局图片置顶
- c语言因为是汇编语言的一种,. C语言是一种(). A.机器语言B.汇编语言C.中级语言D.高...
- 两个listmap合并去重_单机亿级规模题库去重,如果是你会怎么做?
- 【svn】Centos搭建svn服务器环境
- 学弟啊,你代码能不能不要写得这么烂?
- 网站换服务器步骤,【大拿分享】六个步骤搞定更换网站服务器
- 南京信息工程大学python期末考试_南京信息工程大学的雷丁学院怎么样?
- scp cp
- 企业级无线渗透之PEAP
- 使用Htmlunit工具获取表单中的input
- 【RESTful】REST 与 RESTful 理解与实践
- Vue 中 scoped 样式穿透
- C语言数据结构静态动态查找表实验
- java中的对称加密算法和非对称加密算法
- Android Toast连续快速切换更新内容无延迟
- 有趣的智力题(答案)
热门文章
- 夏日街头新风尚 | 变色镜片
- adb shell screencap 报错:usage: screencap [-hp] [-d display-id] [FILENAME]
- python脚本查找txt文本中指定文字及上下文
- 2021青海高考成绩位次查询,青海一分一段表2021文科-青海高考位次表
- 关于上拉电阻和下拉电阻的说明
- 新手对于Unity协程的理解
- Filezilla 显示器驱动程序已停止响应 并且已恢复
- 在ftp服务器创建文件的命令,ftp服务器创建文件夹命令
- 重看《功夫熊猫1》,却有了另一番感触
- 风光储、风光储并网直流微电网simulink仿真模型。 系统有光伏发电系统、风力发电系统