目录 滚动更新简介 使用kubectl rolling-update更新RC Deployment的rolling-update 滚动更新简介 当kubernetes集群中的某个服务需要升级时,传统的做法是,先将要更新的服务下线,业务停止后再更新版本和配置,然后重新启动并提供服务.如果业务集群规模较大时,这个工作就变成了一个挑战,而且先全部了停止,再逐步升级的方式会导致服务较长时间不可用.kubernetes提供了滚动更新(rolling-update)的方式来解决上述问题. 简单来说,滚动更新…
一.前言    Kubernetes 是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度.均衡容灾.服务注册.动态扩缩容等功能套件,目前centos yum源上最新版本为1.5.2. 本文基于Centos7.5构建Kubernetes平台,在正式介绍之前,大家有必要先理解Kubernetes几个核心概念及其承担的功能. 以下为Kubernetes的架构设计图: 1. Pods    在Kubernetes系统中,调度的最小颗粒不是单纯的容器,而是抽象成一个…
Kubernetes集群中Service的滚动更新 二月 9, 2017 0 条评论 在移动互联网时代,消费者的消费行为已经“全天候化”,为此,商家的业务系统也要保持7×24小时不间断地提供服务以满足消费者的需求.很难想像如今还会有以“中断业务”为前提的服务系统更新升级.如果微信官方发布公告说:每周六晚23:00~次日凌晨2:00进行例行系统升级,不能提供服务,作为用户的你会怎么想.怎么做呢?因此,各个平台在最初设计时就要考虑到服务的更新升级问题,部署在Kubernetes集群中的Service…
系列目录 简介 当kubernetes集群中的某个服务需要升级时,传统的做法是,先将要更新的服务下线,业务停止后再更新版本和配置,然后重新启动并提供服务.如果业务集群规模较大时,这个工作就变成了一个挑战,而且先全部了停止,再逐步升级的方式会导致服务较长时间不可用.kubernetes提供了滚动更新(rolling-update)的方式来解决上述问题. 简单来说,滚动更新就是针对多实例服务的一种不中断服务的更新升级方式.一般情况下,对于多实例服务,滚动更新采用对各个实例逐个进行单独更新而非同一时刻…
陆陆续续,关于 Kubernetes 写了有 20+ 篇文章了. 今天这篇文章来一个整合,从实践到理论,可以按需查看(我是按照博客发表时间来排序的,如果后续有想要更新的内容,也会及时更新到这篇文章中). 实践篇(共 11 篇): [Docker]CentOS7下Docker安装教程 [Kubernetes]CentOS7下搭建Harbor仓库 [Kubernetes]CentOS7下Etcd集群搭建 [Kubernetes]CentOS7部署Kubernetes集群 [Docker]CentOS…
目标 使用 kubectl 执行 Rolling Update(滚动更新) 更新应用程序 用户期望应用程序始终可用,为此开发者/运维者在更新应用程序时要分多次完成.在 Kubernetes 中,这是通过 Rolling Update 滚动更新完成的.Rolling Update滚动更新 通过使用新版本的 Pod 逐步替代旧版本的 Pod 来实现 Deployment 的更新,从而实现零停机.新的 Pod 将在具有可用资源的 Node(节点)上进行调度. Kubernetes 更新多副本的 Dep…
Rolling Update滚动更新 通过使用新版本的 Pod 逐步替代旧版本的 Pod 来实现 Deployment 的更新,从而实现零停机.新的 Pod 将在具有可用资源的 Node(节点)上进行调度. Kubernetes 更新多副本的 Deployment 的版本时,会逐步的创建新版本的 Pod,逐步的停止旧版本的 Pod,以便使应用一直处于可用状态.这个过程中,Service 能够监视 Pod 的状态,将流量始终转发到可用的 Pod 上. 默认情况下,Rolling Update 滚动…
滚动更新:一次只更新一小部分副本,成功后,在更新更多的副本,最终完成所有副本的更新. 滚动更新的最大好处是零停机,整个更新过程始终有副本在运行,从而保证了业余的连续性 下面部署三个副本的应用,出事镜像为httpd:2.2.31,然后将其更新到 httpd:2.2.32. 将配置文件中的 httpd:2.2.31 替换为 httpd:2.2.32,再次执行 kubectl apply 现在httpd的deployment镜像变成了httpd:2.2.32 从pod的运行时间来看或者从deploym…
环境:三个centos7 K8s2是Master;K8s1是node1:K8s3是node2 官方文档:https://kubernetes.io/docs/setup/independent/install-kubeadm/ 注意:kubernetes几乎所有的安装组件和docker 镜像都放在goolge自己的网站上 安装docker 所有节点都安装docker:可利用docker-machine安装:可参考:https://www.cnblogs.com/lkun/p/7655495.ht…
1.什么是DaemonSet? 1.1DaemonSet是Pod控制器的又一种实现方式,用于在集群中的全部节点上同时运行一份指定的Pod资源副本,后续加入集群的节点也会自动创建一个相关的Pod对象,当从集群移除节点时,此类Pod对象也将被自动回收无需创建.管理员也可以使用"节点选择器"以及标签指定仅在部分具有特定特征的节点上运行指定的Pod对象. 1.2官方文档: https://kubernetes.io/zh-cn/docs/concepts/workloads/controlle…
kubernetes官网:https://kubernetes.io/docs/home/ 也是怀着不情愿的心情,要开始kubernetes了,本身是非常热爱技术,尤其是容器技术,可能是最近有点累和懈怠,变得有些懒惰了. 每每这种情况,我都会去智联招聘搜一下docker....薪资很高,看了具体的招聘要求,差距很大很大,感觉好累啊.只能说学海无涯,回头可能是岸....话不多说了.开始吧 跑起来~~~ https://kubernetes.io/docs/tutorials/kubernetes-…
一.环境准备 我们紧接上一节的环境,进行下面的操作,如果不清楚的,可以先查看上一篇博文. 滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新.滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性. 二.更新 我们查看一下上一节的配置文件mytest-deploy.yaml. apiVersion: extensions/v1beta1 kind: Deployment metadata: name: mytest spec: repl…
k8s——滚动更新滚动更新就是一次只更新一小部分副本,更新成功之后再更新更多的副本,最终完成所有副本的更新.滚动更新最大的好处是零停机,整个更新的过程中始终有副本运行,从而保证了业务的连续性.kubectl create deploy httpd3 --image=httpd  --dry-run -o yaml > httpd3.yaml或者手动编写yaml文件: vim httpd3.yaml apiVersion: apps/v1kind: Deploymentmetadata: labe…
转载自:https://www.qikqiak.com/post/zero-downtime-rolling-update-k8s/ 软件世界的发展比以往任何时候都快,为了保持竞争力需要尽快推出新的软件版本,而又不影响在线得用户.许多企业已将工作负载迁移到了 Kubernetes 集群,Kubernetes 集群本身就考虑到了一些生产环境的实践,但是要让 Kubernetes 实现真正的零停机不中断或丢失请求,我们还需要做一些额外的操作才行. 滚动更新 默认情况下,Kubernetes 的 De…
Etcd简要介绍 Etcd是Kubernetes集群中的一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息 Etcd构建自身高可用集群主要有三种形式: ①静态发现: 预先已知 Etcd 集群中有哪些节点,在启动时直接指定好Etcd的各个node节点地址 ②Etcd动态发现:通过已有的Etcd集群作为数据交互点,然后在扩展新的集群时实现通过已有集群进行服务发现的机制 ③DNS动态发现:通过DNS查询方式获取其他节点地址信息 这篇文章主要介绍第一种方式.后期如果还有时间和精力研究的话,我…
环境依赖: Harbor仓库需要环境:Python 2.7或以上版本,Docker 1.10或以上,Docker Compose 1.6.0或以上. CentOS7自带Python,所以不需要安装. 关于Docker安装已经写过一篇博客:[Docker]CentOS7下Docker安装教程 所以接下来说一说docker-compose. 部署docker-compose(这里是以1.16.1版本为例,具体版本可以根据自己需要进行下载): curl -L https://github.com/do…
文章是按https://blog.csdn.net/Excairun/article/details/88962769,来进行操作并记录相关结果 版本:k8s V14.0,docker-ce 18.09.03 1.环境准备 内核及版本 [root@k8s-node1 ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@k8s-node1 ~]# uname -r -.el7.x86_64 [root@k8s-node1 ~]…
系列目录 这个系列分为两个小节,第一个小节介绍deployment滚动更新时,deployment.replicaset.pod的细节以及创建过程以及deployment版本管理的方式 第二个小节将介绍滚动更新过程中最大可用.liveness以及readiness等 我们在阿里云上有两个不同版本的镜像用于测试,使用docker pull把它拉取到本地 docker pull registry.cn-beijing.aliyuncs.com/mrvolleyball/nginx:v1 docker…
目录 目录 什么是Kubeadm? 什么是容器存储接口(CSI)? 什么是CoreDNS? 1.环境准备 1.1.网络配置 1.2.更改 hostname 1.3.配置 SSH 免密码登录登录 1.4.关闭防火墙 1.5.关闭交换分区 1.6.关闭 SeLinux 1.7.配置 IPTABLES 1.8.安装 NTP 1.9.升级内核 2.安装 Docker 18.06.1-ce 2.1.删除旧版本的 Docker 2.2.设置存储库 2.3.安装 Docker 2.4.启动 Docker 3.…
参考资料:官方文档 一.虚拟机安装 配置说明: windows下使用vbox,centos17.6 min版,kubernetes的版本是1.14.1, 安装如下三台机器: 192.168.56.15 k15192.168.56.16 k16192.168.56.17 k17 其中k15作为master,k16和k17作为node,虚拟机的安装重点关注网卡设置,设置两个网卡,第一个网卡(ifcfg-enp0s3)Host Only模式,第二个网卡(ifcfg-enp0s8)NAT模式,参见下图…
一.本地实验环境准备 服务器虚拟机准备 IP CPU 内存 hostname 192.168.222.129 >=2c >=2G master 192.168.222.130 >=2c >=2G node1 192.168.222.131 >=2c >=2G node2 本实验我这里用的虚拟机是vmware workstation创建的,我的机器配置较低,所以master给了4G 4C,node每个给了4G 4C,大家根据自己的资源情况,按照上面给的建议最低值创建即可.…
Ubuntu 16.04 下: 0x01 安装chrome 1 下载源加入系统源列表 sudo wget http://www.linuxidc.com/files/repo/google-chrome.list -P /etc/apt/sources.list.d/   2 导入google软件公钥 wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -   3 更新源 sudo a…
在网上看了不少关于Kubernetes的视频,虽然现在还未用上,但是也是时候总结记录一下,父亲常教我的一句话:学到手的东西总有一天会有用!我也相信在将来的某一天会用到现在所学的技术.废话不多扯了.... 一.前期准备 1.k8s-master01:master主服务器(存在单点故障) 2.k8s-node01.k8s-node02:2个工作节点 3.Harbor:私有仓库(简单记录搭建Harbor私服仓库) 4.Router:软路由(由于kubeadm是存放在谷歌云的,国内无法访问,K8S集群搭…
16. kubernetes RBAC授权插件: Node,ABAC,RBAC,webhock RBAC: role based access contrl 基于角色的授权. 角色:(role)许可(permition) 一个完整意义的api url Object URL: /apis/<GROUP>/<VERSION>/namespaces/<NAMESPACE_NAME>/<KIND>[/OBJECT_ID] role: 针对的是namespaces o…
官方安装手册 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/ 组件和版本关系 https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions 添加Docker阿里云源 # step 1: 安装必要的一些系统工具sudo yum install -y yum-ut…
转载自https://www.cnblogs.com/kuku0223/p/12978716.html 1. 各个证书过期时间 /etc/kubernetes/pki/apiserver.crt #1年有效期 /etc/kubernetes/pki/front-proxy-ca.crt #10年有效期 /etc/kubernetes/pki/ca.crt #10年有效期 /etc/kubernetes/pki/apiserver-etcd-client.crt #1年有效期 /etc/kuber…
记录一下自己在 CentOS7 下 rpm 安装 MySQL8.0.16 的过程. 一.准备工作 1. 下载MySQL所需要的安装包 从 MySQL官网 下载,上传至 CentOS 系统 /usr/local/MySQL 目录下,当然你也可以使用 wget 命令直接下载至 CentOS,此处使用的 8.0.16 版本. # 你想要的版本 Product Version: 8.0.16 # CentOS选择Red Hat Enterprise Linux / Oracle Linux Operat…
实践 滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新.滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性. 下面我们部署三副本应用,初始镜像为 httpd:2.2.31,然后将其更新到 httpd:2.2.32. 第一步: httpd:2.2.31 的配置文件如下: [root@ken ~]# cat httpd.yml apiVersion: apps/v1beta1 kind: Deployment metadata: na…
用户希望应用程序始终可用,开发人员应该每天多次部署新版本的应用程序.在Kubernetes中,这是通过滚动更新完成的.滚动更新允许通过使用新的实例逐步更新Pods实例来实现部署的更新,从而实现零停机.新的Pod将在具有可用资源的节点上进行调度. 在上一个模块中,我们将应用程序扩展为运行多个实例.这是执行更新而不影响应用程序可用性的要求.默认情况下,更新期间可用的最大Pod数和可以创建的新Pod的最大数量是一个.两个选项都可以配置为数字或百分比(Pod).在Kubernetes中,更新是版本化的,…
实践 滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新.滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性. 下面我们部署三副本应用,初始镜像为 httpd:2.2.31,然后将其更新到 httpd:2.2.32. 第一步: httpd:2.2.31 的配置文件如下:   [root@ken ~]# cat httpd.yml apiVersion: apps/v1beta1 kind: Deployment metadata:…