k8s(五)deployment 控制升级和回滚
deployment 控制升级和回滚Deployment 中可以管理pod 和 ReplicaSets 的更新功能。 当我们的服务需要升级的时候,通过dockerFile 创建好新的升级包的镜像后。修改deploy pod 模板中的镜像版本号,完成整个部署的滚动升级。每次升级会有一个升级记录,通过记录可以执行回滚到某个版本。 deploy 更新 目前已有一个nginx部署实例 目前的nginx版本号是 1.14.2 目前要升级nginx版本 1.19 1kubectl set image deploy/nginx-deployment nginx=nginx:1.19 --record 或者也可以直接编辑deploy 配置文件 可以看到pod正在变化中,完成pod的升级过程 查看更新上线状态 12345kubectl rollout status deployment/nginx-deployment//输出deployment "nginx-deployment" successfully rolled out pod 如何滚动更新会发现当修 ...
网络基础(二)网络互联模型
网络互联模型1977年,国际标准化组织为适应网络标准化发展的需求,制定了开放系统互联参考模型(Open System Interconnection/Reference Model,OSI/RM),从而形成了网络架构的国际标准。 OSI/RM 构造了由下到上的七层模型, 分别是 应用层 针对特定应用的协议 表示层 设备固有数据格式和网络标准数据格式转换 会话层 通信管理,负责建立和断开通信连接 传输层 保证节点之间的数据传输 网络层 地址选择和路由选择 数据链路层 互联设备之间传送和识别数据帧 物理层 以0 或 1代表电压的高低位传输数据 OSI的七层协议体系结构的概念清楚,理论也比较完整,但它既复杂又不实用,ISO制定的OSI参考模型的过于庞大、复杂招致了许多批评。由技术人员自己开发的TCP/IP协议栈获得了更为广泛的应用。TCP/IP体系结构则不同,它现在已经得到了非常广泛的应用,TCP/IP是一个四层的体系结构。 分别是 应用层 传输层 网际层 网络接口层 在学习研究的时候,往往综合OSI 和TCP ...
k8s(四)pod对象的详细说明
pod详解pod k8s中服务执行的最小单位,接下来详细的说明跟pod相关的自定义配置和原理机制。 pod 生命周期执行 kubectl get pod 查看pod的信息,可以看到有个状态信息,里面表示了当前pod的状态。 123[root@master ~]# kubectl get podNAME READY STATUS RESTARTS AGEnginx-65959796fb-j49cr 1/1 Running 0 77m pod 有多种声明周期状态,下面详细说明 pod 重启策略pod 内有个 RestartPolicy 字段用于控制pod 内所有容器的重启策略; 几种类型说明: 默认值为Always。 Always:当容器失效时,由kubelet自动重启该容器。 OnFailure:当容器终止运行且退出码不为0时,由kubelet自动重启该容器。 Never:不论容器运行状态如何,kubelet都不会重启该容器。 pod 健康检查机制如何定义pod 是否监控,这个 ...
k8s(三)资源对象介绍对象的yml文件
概述k8s中有需要的资源对象,不同的资源对象负载不同的功能,由多个资源对象相互配合组成可扩展,高可用的集群环境。 在前面已经提到过的一些对象 比如pod ,node ,service, deployment 都属于k8s中的对象。 基本上所有的对象都可以通过kubectl 命令进行增删改查操作。对象的信息是存储在etcd中的。 回忆一下在docker中的一个镜像可以由dockerFile来表示,而k8s中的资源对象也可以由一个一个的文件来表示,这个文件是yml 资源文件。 yml文件介绍就以一个最简单的pod的文件为例 12345678910111213apiVersion: apps/v1kind: Podmetadata: name: web namespace: default labels: name:ywebspec: containers: - name: web image: tomcat:8.0 ports: - containerPort:8080 简单说明: apiVersion 和dockercompose 文件类似首先需要声 ...
网络基础(一)计算机网络基本和概念
计算机网络基本和概念概念计算机网络主要是由一些通用的,可编程的硬件互联而成,这些硬件并非专门用来实现某一个目的,而是通过可编程的硬件来传送多种类型的数据,并能支持广泛和日益增长的应用。 简单的说,计算机网络包含的设备并不仅仅是个人pc,包含手机,服务器,智能设备 等一切可编程的联网的设备,这些设备组成一个巨大的网络。借助这个网络,才能实现各个设备之间的通信。 网络分类网络分为多种,根据范围可以分为 广域网WAN (Wide Area Network) 广域网的范围通常为几十到几千公里,主要任务是长距离进行网络传输。 城域网MAN (Metropolitan Area Network) 城域网 作用范围是一个城市,作为范围5到 50 km。 局域网 LAN (Local Area NetWork) 局域网一般是比较小的范围,比如家庭,比如学校企业等小范围的网络。 关联和联系 生活中的例子 我们平常使用的路由器 都是有一个WAN 口,几个LAN 口。 WAN 指的就是 ...
k8s(二)k8s 的安装步骤
k8s安装首先需要完成对k8s的安装,k8s 的安装方式基本有2种;kubeadm工具安装和二进制文件方式安装 因为k8s的安装比较复杂 且容易出错,Kubernetes从1.4版本开始引入了命令行工具kubeadm,方便快速安装k8s. 下面会分别说明2种k8s的安装方式; k8s的集群架构模式k8s的集群架构 分为单master 和多master。对于node 一般肯定是多个的,而master可以1个或多个。当然为了高可用,可以选用多master的架构。但是多master架构的模式下,多个work node 需要一个负载均衡器来访问多个master. k8s生产环境的要求配置说明 本次安装环境配置说明k8s 支持多种容器引擎这里以docker来做说明 系统版本 centos7 虚拟机 3 台 配置 2core * 2G docker版本 18.06.1-ce k8s 版本 1.18.0 安装前的准备安装k8s之前需要对linux系统做一些设置 主机上禁用SELinux,让容器可以读取主机文件系统 12345678910> ...
k8s(一)基本认识
k8s简单认识 Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。 kubernetes 又被称为k8s 是谷歌开源的号称包含了谷歌15年的运维的经验(是google Borg的一个开源版)。目标是让部署容器化的 应用简单并且高效(powerful),Kubernetes 提供了应用部署,规划,更新,维护的一种机制。简单的说是大规模管理容器的一个工具,支持自动部署,扩缩容等功能是一个分布式的系统支撑平台。 2015年,谷歌联合20多家公司一起建立了CNCF(Cloud Native ComputingFoundation,云原生计算基金会)而k8s是第一个加入CNCF的项目。 官网链接: https://kubernetes.io/ 主要的核心功能: 自动装箱 基于容器对应用环境的资源配置自动部署容器 自我修复 容器失败的时候重启,节点有问题的时候会重新进行调度 某一个容器出现了问题,能够自动将容器重启或删除 ...
git 删除大问题问题
问题说明 github 或gitee 支持的提交文件大小有一定的限制。 git中历史提交的一些比较大的文件 即使删除了,因为提交记录存在,所以文件还会存储在.git 文件夹中,造成git目录文件比较大。 通过将大文件或记录删除可以解决 本地提交的大文件无法推送的问题。 对git文件目录瘦身。 解决方式 查找历史比较大的提交记录。 1git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')" 得到需要的文件目录名。 通过 filter-branch 来重写这些大文件涉及到的所有提交(重写历史记录): 1git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch ${FILE_PATH_NAME ...
docker compose基本使用
docker compose 基本使用概述docker compose 是一个工具,轻松和高效管理多个容器;批量容器编排;方便一次性管理多个容器 compose 是docker官方的开源项目,需要单独安装; docker compose 可以集中的管理整个服务的运行环境和依赖关系,方便的上线和下线操作。 您可以使用 YAML 文件来配置应用程序的服务。然后,使用一个命令,您可以从您的配置中创建并启动所有服务。 官方地址: https://docs.docker.com/compose/ 使用docker compose 三个步骤 定义应用的可以运行的dockerfile 通过 docker-compose.yml 定义服务运行的环境,使其能够在隔离的容器中运行 使用 docker compose up 快速运行环境 docker compose 整个生命周期 启动,停止和构建服务 查看服务的状态 流动输出服务的运行日志 在服务上运行一次性命令 安装docker compose 安装步骤: https://docs.docker.com/compose/install/ 以 ...
docker 基本原理
docker 原理docker 如何虚拟了容器Linux Namespace 和 Cgroups Linux Namespace 是linux内核的一个功能,可以用来操作隔离系统资源,比如pid ,userId ,network ,进程,网络接口,挂载点等。在linux中,可以以用户为核心,为一个用户隔离出一个独立的namespace ,这个namespace中 用户拥有root权限,但是对于整个操作系统来说,还是只有用户的权限。当前linux 实现了6种不同类型的namespace Mount Namespace 隔离挂载和挂载点 UTS Namespace 用来隔离nodename 和 domainname IPC Namespace 隔离System V IPC 和 POSIX message quenus PID Namespace 用来隔离进行id ,在每个子空间中看起来都是独立的id Network Namespace 隔离网络设备 User Namespace 隔离用户和用户组 对于linux内核提供了操作隔离的函数,docker在运行时会调用到内 ...





