- 博客(21)
- 收藏
- 关注
原创 K8S实战(二十一)| 部署策略:蓝绿部署+滚动部署+灰度部署+金丝雀部署
前言应用程序的更新发布,如何降低对用户的影响面,人们研究出了几种发布策略。更新历史20200720 - 初稿 - 左程立原文地址 - https://blog.zuolinux.com/2020/07/20/how-to-deployment.html蓝绿部署流程准备 A/B 两个集群,运行相同的程序。在项目升级时,首先把 A 集群从负载均衡中移除,进行新版本的部署。B 集群仍提供服务。A 集群升级完成后加入负载均衡,B 集群从负载均衡中移除。优点平滑发布,不会因发布导致服务中断
2020-09-20 11:13:58
813
原创 K8S实战(二十)| 企业私有镜像仓库
前言私有仓库用于企业内部私有 Docker 镜像的存储。可以将私有仓库安装到 K8S 集群中。Harbor 镜像仓库是由 VMware 开源的一款企业级镜像仓库系统。更新历史20200719 - 初稿 - 左程立原文地址 - https://blog.zuolinux.com/2020/07/19/harbor.html自定义证书openssl genrsa -out ca.key 4096openssl req -x509 -new -nodes -sha512 -days 3650
2020-09-19 22:55:45
317
原创 K8S实战(十九)| K8S 包管理 Helm
前言类似于 Linux 的 YUM、APT,Helm 是 K8S 的包管理工具。Helm, 一个二进制工具,用来安装、升级、卸载 K8S 中的应用程序。Helm Chart,一个 tgz 包,类似安卓的 APK。K8S 应用打包成 Chart,通过 Helm 安装到 K8S 集群中。更新历史20200717 - 初稿 - 左程立原文地址 - https://blog.zuolinux.com/2020/07/17/k8s-package-manager-helm.htmlHelm 包管理
2020-09-19 22:55:32
456
原创 K8S实战(十八)| 容器资源分配和资源限制
前言为了防止容器调度到资源不足的节点上,可以为容器指定资源最少要求量。为了防止容器无节制的使用 CPU、内存 等资源,可以为容器指定资源最大允许使用量。更新历史20200714 - 初稿 - 左程立原文地址 - https://blog.zuolinux.com/2020/07/14/container-resources-request-limit.html资源请求和资源约束可以为容器指定资源请求量和资源约束量。资源一般指 CPU、内存。资源请求量,指容器要求节点分配的最小容量,如果
2020-09-19 22:55:19
1879
原创 K8S实战(十七)| 通过 StorageClass 实现动态卷供应
前言StorageClass 相当于一个创建 PV 的模板,用户通过 PVC 申请存储卷,StorageClass 通过模板自动创建 PV,然后和 PVC 进行绑定。更新历史20200712 - 初稿 - 左程立原文地址 - https://blog.zuolinux.com/2020/07/12/storageclass.html启用动态卷供应创建 StorageClass 对象即可,即创建了模板。apiVersion: storage.k8s.io/v1kind: Stor
2020-09-19 22:54:26
692
原创 K8S实战(十六)| 持久化存储卷
前言PV 用来定义持久化存储卷,可将外部存储如 NFS/GFS/CFS 等定义为一个 K8S 内部对象,是一个服务提供者。PVC 会寻找合适的 PV 进行绑定,绑定成功后,PVC 就可以提供给 pod 使用。更新历史20200710 - 初稿 - 左程立原文地址 - https://blog.zuolinux.com/2020/07/10/storage-pv-pvc.html定义 PV/PVC定义一个 PV[root@master01 ~]# cat pv.yaml apiVersi
2020-09-19 22:54:13
209
原创 K8S实战(十五)| 存储卷概念
前言容器中的文件在磁盘上是临时存放,容器崩溃重启后,容器将被以干净状态重建,崩溃之前创建的文件将被清除。K8S 使用卷的概念来管理容器生成的需持久化的文件,卷也可用于同一个 Pod 中多个容器之间共享文件。更新历史20200708 - 初稿 - 左程立原文地址 - https://blog.zuolinux.com/2020/07/08/about-storage-volume.htmlVolume 的类型emptyDir 卷容器崩溃并不会导致 Pod 被从节点上移除,因此容
2020-09-19 22:54:00
310
原创 K8S实战(十四)| ConfigMap 对象
前言ConfigMap 对象可以用来管理普通的、非机密的配置信息,以明文形式存放。Secret 对象用来管理重要的、机密的、不能泄露的类似秘钥、密码等信息。ConfigMap 对象可以实现程序的配置和程序本身的解耦,从而使程序更具移植性。更新历史20200705 - 初稿 - 左程立原文地址 - https://blog.zuolinux.com/2020/07/05/about-configmap.html通过目录/文件创建 ConfigMap从目录创建mkdir configmap
2020-09-19 22:53:46
213
原创 K8S实战(十三)| Secret 对象
前言Secret 可以用来保存密码、密钥等敏感信息,避免密钥直接放在 Pod 的YAML定义文件或容器镜像中导致的泄露问题。密钥使用 Base64 编码形式存储于 Secret 对象中,Pod 挂载后自动解码为明文。更新历史20200702 - 初稿 - 左程立原文地址 - https://blog.zuolinux.com/2020/07/02/about-secret.html通过 kubectl 创建 Secret创建用户名/密码文件echo -n 'username' >
2020-09-19 22:53:04
231
原创 K8S实战(十二)| 为 Ingress 以及后端 Nginx 增加证书
前言前面 nginx 都是 http 协议在工作,那么加证书应该如何操作。更新历史20200701 - 初稿 - 左程立原文地址 - https://blog.zuolinux.com/2020/07/01/nginx-https.html创建证书可以网上申请一年免费证书,也可以自建证书。下面自建证书。下载自建证书脚本wget -O Makefile https://raw.githubusercontent.com/kubernetes/examples/master/staging/
2020-09-19 22:52:39
1104
原创 K8S实战(十一)| Service 的 Service:Ingress
前言ingress 可以理解为 Service 的 Service,即在现有 Service 的前面再搭建一层 Service,作为外部流量的统一入口,进行请求路由的转发。说白了就是在前端搭建一个 nginx或者haproxy,将不同 host 或 url 转发到对应的后端 Service,再由 Service 转给 Pod。只不过 ingress 对 nginx/haproxy 进行了一些解耦和抽象。更新历史20200628 - 初稿 - 左程立原文地址 - https://blog.zuo
2020-09-19 22:51:49
620
1
原创 K8S实战(十)| Service
前言Pod 已经成功运行起来了,但是有两个问题。一是这些 Pod 无法从集群外部直接访问到,二是 Pod 出现故障自愈后,IP 会发生变化。如何解决这两个问题,这里有一个非常重要的概念:Service更新历史20200625 - 初稿 - 左程立原文地址 - https://blog.zuolinux.com/2020/06/25/about-service.htmlService 的意义和特点对一组 Pod 提供负载均衡(工作在 TCP/UDP 4 层)防止 Pod 更换 IP 失
2020-09-18 19:48:51
314
原创 K8S实战(九)| 控制器 DaemonSet - 将守护进程容器化
前言Deployment 管理的 Pod 允许在一个节点上运行多个副本。当需要在节点上运行收集日志或者执行监控任务的容器时,显然不适合启动多个 Pod 副本。这种场景下,我们可以启用 DaemonSet 控制器来管理 Pod。更新历史20200620 - 初稿 - 左程立原文地址 - https://blog.zuolinux.com/2020/06/20/about-controller-daemonset.htmlDaemon Pod 的特点Pod 运行在集群中的全部或者部分节点上
2020-09-18 19:47:33
690
原创 K8S实战(八)| Job 和 CronJob
前言容器分为两类在线业务 - 服务类容器 需要持续不中断的提供服务,容器需要一直运行离线业务 - 工作类容器 一般执行一次性任务,比如统计日志数据等,运行完成后容器即可关闭更新历史20200618 - 初稿 - 左程立原文地址 - https://blog.zuolinux.com/2020/06/18/controller-job-cronjob.htmlJobcat job.yamlapiVersion: batch/v1kind: Jobmetadata:
2020-09-18 19:46:19
325
原创 K8S实战(七)| 有状态应用之 MySQL 集群
前言本节使用 StatefulSet 控制器部署一个 MySQL 集群,然后进行宕机测试,观察集群是否可以正常恢复使用并且不丢失数据。实现的集群有如下特征:是一个主从复制的 MySQL 集群1 个主节点, 多个从节点从节点能够水平扩展所有的写操作,只能在主节点上执行读操作可以在所有节点上执行更新历史20200615 - 初稿 - 左程立原文地址 - https://blog.zuolinux.com/2020/06/15/statefulset-mysql-cluster.html
2020-09-18 19:45:39
305
原创 K8S实战(六)| 配置NFS动态卷提供持久化存储
前言本节中 K8S 使用 NFS 远程存储,为托管的 pod 提供了动态存储服务,pod 创建者无需关心数据以何种方式存在哪里,只需要提出需要多大空间的申请即可。总体流程是:创建 NFS 服务器。创建 Service Account。用来管控 NFS provisioner 在k8s集群中运行的权限。创建 StorageClass。负责创建 PVC 并调用 NFS provisioner 进行预定的工作,并关联 PV 和 PVC。创建 NFS provisioner。有两个功能,一个是在NF
2020-09-18 19:45:00
540
原创 K8S实战(五)| 控制器 StatefulSet 的原理
前言Deployment 中可以随意的关闭和启动一个 Pod,Pod 之间的关系是平等的。当 Pod 之间有主从关系,以及每个 Pod 对应特定的存储卷中的内容时,无法使用 Deployment 控制器来随意的操作 Pod。我们需要使用一个叫做 StatefulSet 的控制器来处理这种有状态应用 Pod。更新历史20200605 - 初稿 - 左程立原文地址 - https://blog.zuolinux.com/2020/06/05/about-controller-statefulset
2020-09-18 19:41:03
316
原创 K8S实战(四)| 控制器 Deployment
前言上一节说到直接创建的 Pod 没有自愈功能。使用控制器创建的 Pod 才能故障自愈,那么什么是控制器呢。可以这么理解,容器是光秃秃的箱子,Pod 把箱子进行了包装以方便 K8S 挂载。那么 K8S 一次挂载几个 Pod,如何挂载,这些信息都由控制器来指定和管理。控制器包含很多种,本节实践 Deployment 控制器。更新历史20200601 - 初稿 - 左程立原文地址 - https://blog.zuolinux.com/2020/06/01/about-controller-d
2020-09-18 19:36:17
212
原创 K8S实战(三)| Pod 的本质
前言上一节发布了一个容器到 K8S 中,但其实实际操作的是 Pod ,那么为什么是 Pod,而不是容器。更新历史20200531 - 初稿 - 左程立原文地址 - https://blog.zuolinux.com/2020/05/22/about-pod.htmlPod 的本质Pod 包装了一个或多个容器。Pod 是 K8S 的最小执行单元。Pod 是 K8S 中的一个进程。Pod 可包装 Docker,也支持包装其他类型容器。Pod 包含封装的容器、存储资源、网络资源、以及指导容
2020-09-18 19:35:49
267
原创 K8S实战(二)| 发布容器到 K8S 集群中
前言今天在 K8S 集群中跑一个容器化应用。更新历史20200518 - 初稿 - 左程立原文地址 - https://blog.zuolinux.com/2020/05/18/first-app-on-k8s.html如何发布容器到 K8S 中容器来源使用 nginx 的官方容器镜像。发布容器的两种方式镜像有了,我们如何将其提交给 K8S 运行呢,有两种方式:命令行方式(不推荐)。配置文件方式(推荐)。这里使用官方推荐的第二种方式,即通过将容器的各种信息写入配置文件提交给
2020-09-18 19:34:16
237
原创 K8S实战(一)| 运营管理生产级 K8S 高可用集群之初始化
前言春暖花开的五月,疫情基本过去,值得庆贺,在这美好的日子里我们来实战一下 K8S 的高可用负载均衡集群吧。更新历史2020 年 05月 07 日 - 初稿 - 左程立原文地址 - https://blog.zuolinux.com/2020/05/07/k8s-cluster-on-centos7.html平台环境软件信息CentOS Linux release 7.7.1908 (Kernel 3.10.0-1062.18.1.el7.x86_64)Docker CE
2020-09-18 19:33:13
437
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人