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 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...
随机推荐
- 基于Arduino的按键控制LED实验
I/O 口的意思即为INPUT 接口和OUTPUT 接口,到目前为止我们设计的小灯实验都还只是应用到Arduino 的I/O 口的输出功能,这个实验我们来尝试一下使用Arduino的I/O 口的输入功 ...
- AtCoder Beginner Contest 151 题解报告
总的来说,这次的题目比较水,然而菜菜的我并没有把所有题目都做完,话不多说,直接来干货: A:Next Alphabet 题目链接:https://atcoder.jp/contests/abc151/ ...
- 原生javascript 基础动画函数封装(一)
<!DOCTYPE html> <html> <head> <title></title> <style type="tex ...
- Openstack之七:实现基于桥接的内外网络
一.在控制端进行配置网络 #启动实例文档:https://docs.openstack.org/ocata/zh_CN/install-guide-rdo/launch-instance.html# ...
- cogs 3. 服务点设置 dijkstra
3. 服务点设置 ★ 输入文件:djsa.in 输出文件:djsa.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] 为了进一步普及九年义务教育,政府要在某乡镇建 ...
- LCA - 倍增法去求第几个节点
You are given a tree (an undirected acyclic connected graph) with N nodes, and edges numbered 1, 2, ...
- Docker学习(三)认识Docker和常用命令
Docker学习(三)认识Docker和常用命令 Docker体系结构 docker服务端,作为服务的提供方,核心进程 docker daemon,所有docker命令都是通过这个进程完成的 REST ...
- 关于爬虫的日常复习(5)—— beautifulsoup库
- 神秘常量0x077CB531,德布莱英序列的恩赐
本文发布于游戏程序员刘宇的个人博客, 转载请注明来源https://www.cnblogs.com/xiaohutu/p/10950011.html 某天我在优化游戏的算法,在将一个个关键数据结构优化 ...
- Dart语言学习( 一) 为什么学习Dart?
为什么学习Dart? Google及全球的其他开发者,使用 Dart 开发了一系列高质量. 关键的 iOS.Android 和 web 应用. Dart 非常适合移动和 web 应用的开发. 高效 D ...