DOCKER 学习笔记9 Kubernetes (K8s) 弹性伸缩容器 下
前言
从上一篇看来,我们已经对于Kubernetes ,通过minikube 建立集群,而后使用kubectl 进行交互,对Deployment 部署以及服务的暴露等。这节,将学习弹性的将服务部署到多个节点上。
检查
检查部署情况 kubectl get deployments
$ kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
mynode 1/1 1 1 10m
- READY 显示当前/所需副本的比率
- UP-TO-DATE 最新显示已更新以达到所需状态的副本数
- 显示应用程序有多少副本可供用户使用。
- AGE 启动时间
kubectl get nodes 检查当前可用节点数
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready master 39m v1.17.2
增加副本数量
kubectl scale deployment <name> --replicas=?
将部署的副本数量调节至指定大小
mrc@mrc-linux:~$ kubectl scale deployment mynode --replicas=4
deployment.apps/mynode scaled
kubectl get pods 可以查看当前POD 的数量
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
mynode-5479db549c-6n6wt 1/1 Running 0 31m
mynode-5479db549c-hvpnr 1/1 Running 0 4m39s
mynode-5479db549c-mzmht 1/1 Running 0 4m39s
mynode-5479db549c-zwg6k 1/1 Running 0 4m39s
查看部署创建的复制集合
kubectl get rs
$ kubectl get rs
NAME DESIRED CURRENT READY AGE
mynode-5479db549c 4 4 4 10h
我们扩容到了四个,所以这里展示的有四个
查看服务状态
$ kubectl get service mynginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
mynginx NodePort 10.111.8.25 <none> 80:30857/TCP 5m33s
这里原有的服务就是将nginx 应用80端口暴露到虚拟机30857 端口下
更新应用
在 Kubernetes 中,这些是通过滚动更新(Rolling Updates)完成的。 滚动更新 允许通过使用新的实例逐步更新 Pod 实例,零停机进行 Deployment 更新。新的 Pod 将在具有可用资源的节点上进行调度。
更新镜像
vi Dockerfile
FROM nginx
RUN echo '<h1>Update Kubernetes</h1>' > /usr/share/nginx/html/index.html
重新打包
docker build -t mynginx:v1 .
更换部署镜像
$ kubectl.exe set image deployment <deployment> oldimage=newimage
- deployment 表示需要修改的应用实例
- oldimage 原本的镜像名称
- newimage 新的镜像名称
$ kubectl.exe set image deployment/mynginx mynginx=mynginx:v1 deployment.apps/mynginx image updated
查看POD
kubectl.exe get pods
我们会发现多出来两个POD ,当然这两个POD 是新的,将要替换掉原来老旧的POD
$ kubectl.exe get pods NAME READY STATUS RESTARTS AGE
mynginx-54fdcfb5dd-h7wwl 1/1 Running 0 11s
mynginx-54fdcfb5dd-jk4n4 1/1 Running 0 9s
mynginx-54fdcfb5dd-m9x45 1/1 Running 0 9s
mynginx-54fdcfb5dd-wbrpz 1/1 Running 0 11s
mynginx-6579cc57f7-pkvgv 0/1 Terminating 0 39m
mynginx-6579cc57f7-zlwzj 0/1 Terminating 0 64m
检查更新结果
$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 45h
mynginx NodePort 10.111.8.25 <none> 80:30857/TCP 125m
获取到暴露出的端口号:30857
回滚
其实回滚和更新是一个操作,是需要将镜像版本进行修改即可完成回滚
小结
到这里,基本上docker 学习就先到一段落吧,从最开始的docker 入门开始,到接触到编排 compose 以及建立虚拟机 docker-machine 再到使用官网的docker swarm 进行集群的创建,任务的部署。走过很大段的一条路。最后我们尝试着接触一些企业里面流行的生产化容器编排 k8S
革命尚未成功,同志任需努力!
DOCKER 学习笔记9 Kubernetes (K8s) 弹性伸缩容器 下的更多相关文章
- DOCKER 学习笔记9 Kubernetes (K8s) 生产级容器编排 上
前言 在上一节的学习中.我们已经可以通过最基本的 Docker Swarm 创建集群,然后在集群里面加入我们需要运行的任务 以及任务的数量 这样我们就创建了一个服务. 当然,这样的方式在我们本地虚拟机 ...
- docker学习笔记:修改无法启动的容器中的内容
我们可能会碰到这样的一个问题,在容器执行过程中,修改了容器的内容(如配置文件信息),但因为修改出了问题.导致容器关闭后,无法启动. 这事需要重新修改配置文件. 正常情况下可以通过 docker exe ...
- Docker学习笔记之浅谈虚拟化和容器技术
0x00 概述 相信所有对 Docker 有所耳闻的朋友都知道,它是一款以容器虚拟化技术为基础的软件,因此在了解有关 Docker 的概念知识和使用方法之前,虚拟化和容器技术是我们不可或缺的基础知识. ...
- Docker学习笔记_创建和使用Centos容器
实验:创建和使用Centos容器 步骤: 1.搜索 sudo docker search cen ...
- k8s 弹性伸缩
k8s弹性伸缩,需要附加插件heapster 1.安装heapster监控 1:上传并导入镜像,打标签 ls *.tar.gz for n in `ls *.tar.gz`;do docker loa ...
- k8s弹性伸缩概念以及测试用例
k8s弹性伸缩概念以及测试用例 本文原文出处:https://juejin.im/post/5c82367ff265da2d85330d4f 弹性伸缩式k8s中的一大亮点功能,当负载大的时候,你可以对 ...
- Docker学习笔记 — 配置国内免费registry mirror
Docker学习笔记 — 配置国内免费registry mirror Docker学习笔记 — 配置国内免费registry mirror
- docker学习笔记1 -- 安装和配置
技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...
- Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...
随机推荐
- nginx 负载均衡及反向代理
Nginx简介 Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.由俄罗斯的程序设计师开发,官方测试nginx能够支支撑5万并发链接,并且cpu.内存 ...
- iOS多线程编程原理及实践
摘要:iOS开发中,开发者不仅要做好iOS的内存管理,而且如果你的iOS涉及多线程,那你也必须了解iOS编程中对多线程的限制,iOS主线程的堆栈大小为1M,其它线程均为512KB,且这个限制开发者是无 ...
- 重拾c++第一天(2):基本语法
1.输出方法: cout<<"输出语句" 2.输出时换行为 cout<<endl or "\n" 3.连续赋值是合法的,从右往左依次赋值 ...
- 求1-n 中与 m 互质的素因子 (容斥原理)
ll prime[100]; ll cnt; void getprime(){ cnt = 0; ll num = m; for(ll i = 2; i*i <= m; i++){ // sqr ...
- Java入门 - 高级教程 - 09.文档注释
原文地址:http://www.work100.net/training/java-documentation.html 更多教程:光束云 - 免费课程 文档注释 序号 文内章节 视频 1 概述 2 ...
- 【WPF学习】第十三章 理解路由事件
每个.NET开发人员都熟悉“事件”的思想——当有意义的事情发生时,由对象(如WPF元素)发送的用于通知代码的消息.WPF通过事件路由(event routing)的概念增强了.NET事件模型.事件路由 ...
- 【VBA】EXCEL通过VBA生成SQL,自动生成创建表结构SQL
原文:https://blog.csdn.net/zutsoft/article/details/45441343 编程往往与数据库密不可分,一个项目往往有很多的表,很多时候通过excel来维护表结构 ...
- Markdown 标记 粘贴到 小书 匠 才知道 哦
# 一级标题## 这是二级标题### 三级标题##### 五级 高阶== 低阶-- [TOC] > 这是一级引用>>这是二级引用>>> 这是三级引用 ```java ...
- Exchange Server 2016 本地部署安装流程
思路:一台Server 2016用作AD+DNS,一台Server 2016用作Exchange Server 2016 Exchange Server 2016 CU14 安装路径:安装路径:htt ...
- Centos7搭建FastFDS----分布式文件服务系统服务端
一.FastDFS介绍 FastDFS开源地址:https://github.com/happyfish100 参考:分布式文件系统FastDFS设计原理 参考:FastDFS分布式文件系统 1.1简 ...