![](https://img-blog.csdnimg.cn/4d72d6ba36e741f8b6196d0dbdabf940.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
【完结】Kubernetes 实战
文章平均质量分 77
使用 3 台阿里云 ECS 服务器搭建 K8S 集群,针对 K8S 知识点及特性进行实战讲解,并从 0 到 1 完整实现一个前后端项目的简单 DevOps 流程;
BraveWangDev
11年开发经验、全栈工程师;2023年更新计划已确定,希望能与大家共同进步;
展开
-
【Kubernetes】第二十八篇 - 实现自动构建部署
上一篇,介绍了 Deployment、Service 的创建,完成了前端项目的构建部署;希望实现:推送代码 -> 自动构建部署-> k8s 滚动更新;本篇,实现自动构建部署。原创 2023-03-15 22:03:26 · 1402 阅读 · 0 评论 -
【Kubernetes】第二十七篇 - 布署前端项(下)
上一篇,介绍了前端项目的部署:项目的创建和 jenkins 配置;本篇,创建 Deployment、Service,完成前端项目的部署;原创 2023-03-14 17:29:42 · 812 阅读 · 0 评论 -
【Kubernetes】第二十六篇 - 布署前端项目(上)
上一篇,创建 Deployment、Service 完成后端项目布署;本篇,开始介绍前端项目的部署;原创 2023-03-13 23:01:19 · 587 阅读 · 0 评论 -
【Kubernetes】第二十五篇 - 布署 nodejs 后端项目(下)
上一篇,介绍了部署后端项目之前,需要的准备的相关配置信息;本篇,创建 Deployment、Service 完成后端项目布署;原创 2023-03-12 21:33:31 · 931 阅读 · 0 评论 -
【Kubernetes】第二十四篇 - 布署 nodejs 后端项目(中)
上一篇,介绍了 nodejs 后端项目的布署(将后端项目构建成为 docker 镜像,并推送至镜像仓库);部署后端之前,需要完成一下操作:1,配置数据库连接信息、数据库账号,使项目连接到数据库;2,配置私有镜像仓库认证信息;本篇,后端项目连接数据库;原创 2023-03-11 21:23:45 · 667 阅读 · 0 评论 -
【Kubernetes】第二十三篇 - 布署 nodejs 后端项目(上)
上一篇,介绍了 MySQL 服务的部署;本篇,介绍 nodejs 后端项目的布署(将后端项目构建成为 docker 镜像,并推送至镜像仓库);原创 2023-03-10 14:11:03 · 878 阅读 · 0 评论 -
【Kubernetes】第二十二篇 - k8s 部署 MySQL 服务(secret、deployment、service)
上一篇,介绍基于 k8s 项目部署流程设计;本篇,介绍 MySQL 服务的部署;原创 2023-03-09 16:17:18 · 3253 阅读 · 2 评论 -
【Kubernetes】第二十一篇 - k8s 项目部署流程和操作梳理
上一篇,介绍了 k8s 污点和容忍度;在了解前面 k8s 介绍之后,设计并完成一个前后端项目的部署和持续集成;本篇,介绍基于 k8s 项目部署流程设计;原创 2023-03-08 09:52:57 · 900 阅读 · 0 评论 -
【Kubernetes】第二十篇 - k8s 污点和容忍度
上一篇,介绍了 k8s ConfigMap 管理服务环境变量;本篇,介绍 k8s 污点和容忍度;通过污点和容忍度配置可以干预 Pod 部署到特定的节点;比如:不想让某些服务、deploy、pod 部署到某台机器上;专门负责部署 mysql 的机器,可以设置污点默认不能部署其他服务;污点和容忍度在 Kubernetes 中, Pod 被部署到 Node 上面去的规则和逻辑是由 Kubernetes 的调度组件根据 Node 的剩余资源,地位,以及其他规则自动选择调度的。原创 2023-03-07 21:38:32 · 1131 阅读 · 0 评论 -
【Kubernetes】第十九篇 - 使用 ConfigMap 管理服务的环境变量
上一篇,介绍了 k8s 服务发现;本篇,介绍 k8s ConfigMap 管理服务环境变量;ConfigMap:意味配置地图或配置对象,与 Secret 功能相似,都用于存储 key-value;Secret 存放机密信息,会对数据进行加密;ConfigMap 存放配置信息,不会对数据进行加密;ConfigMap 是 Kubernetes 的一种资源类型,用于存放一些环境变量和配置文件;信息存入后,可以通过挂载卷的方式挂载到 Pod 内,也可以通过环境变量进行注入;原创 2023-03-06 08:56:38 · 583 阅读 · 0 评论 -
【Kubernetes】第十八篇 - k8s 服务发现简介
上一篇,介绍了阿里云 ECS 服务器重启后的环境修复;本篇,介绍 k8s 服务发现;当 A服务依赖了 B服务,而 B服务的IP和端口未知(或相对不固定),这时就需要服务发现;服务发现:是指使用一个注册中心,来记录分布式系统中全部服务的信息,以便于其他服务能够快速找到这些在注册中心的已注册服务;原创 2023-03-05 16:36:10 · 1309 阅读 · 0 评论 -
【Kubernetes】第十七篇 - ECS 服务停机和环境修复
上一篇,介绍了 Secret 镜像的使用;三台服务每天大概 15 块钱的支出,用一个月也是不少钱;闲时可以停掉,这样每天只有 4 块钱支出,剩下一大笔;ECS 服务停机后公网 IP 会变化,所以使用到公网 IP 的地方都需要重新配置,恢复环境;本篇,介绍 ECS 停机后重启的环境修复;备注:只涉及到目前未知的配置,后续章节可能会新增其他配置项,全部完成之后再补充一篇熊进行说明;原创 2023-03-04 18:07:13 · 895 阅读 · 0 评论 -
【Kubernetes】第十六篇 - Secret 镜像的使用
上一篇,介绍了两种 Secret 对象的创建;本篇,介绍了 Secret 镜像的使用;原创 2023-03-03 08:52:25 · 320 阅读 · 0 评论 -
【Kubernetes】第十五篇 - Secret 对象的简介与创建
上一篇,介绍了 docker 私有镜像仓库的安装和使用;本篇,介绍 Secret 对象的创建;Secret 是 Kubernetes 中的一种资源类型,可以用来储存机密信息,如:密码,token,密钥等;信息被存入 Secret 后,可以通过挂载卷的方式挂载到 Pod 内;也可以用于存放 docker 私有镜像库的登录名和密码,用于拉取私有镜像使用;Opaque 类型;原创 2023-03-02 16:57:51 · 821 阅读 · 0 评论 -
【Kubernetes】第十四篇 - docker 私有镜像仓库 harbor 安装和使用
上一篇,介绍了 k8s 服务探针的实现;本篇,介绍 docker 私有镜像仓库的安装和使用;镜像库是一个用于集中存放docker 镜像文件的文件服务;镜像库在 CI/CD 中,又称为制品库;构建后的产物称为制品,制品需要放入制品库中进行管理;常用的 docker 镜像平台有 Nexus、Jfrog 和 Harbor 等对象存储平台;原创 2023-03-01 08:46:14 · 571 阅读 · 0 评论 -
【Kubernetes】第十三篇 - 服务探针的实现
上一篇,介绍了 k8s 服务探针;本篇,介绍 k8s 服务探针的实现;通过在 Pod 容器中,执行预定的 Shell 脚本命令,如果所执行的命令没有报错退出(返回值为0),代表容器状态健康;否则表示有问题的;使用 TCP 套接字进行检测;Kubernetes 会尝试在 Pod 内与指定端口连接;如果能建立连接(Pod的端口打开了),就代表当前容器是健康的;如果不能,则代表这个 Pod 有问题;nginx 服务,需要看 80 端口是否正常;mysql 服务,需要看 3306 端口是否正常;原创 2023-02-28 08:53:49 · 432 阅读 · 0 评论 -
【Kubernetes】第十二篇 - 服务探针简介
上一篇,介绍了 k8s 滚动更新的实现;本篇,介绍 k8s 服务探针;原创 2023-02-27 08:53:13 · 215 阅读 · 0 评论 -
【Kubernetes】第十一篇 - 滚动发布的介绍与实现
上一篇,介绍了灰度发布和流量切分的集中方式,以及如何实现 k8s 的灰度发布;本篇,介绍滚动发布的实现;滚动发布,则是我们一般所说的无宕机发布。其发布方式如同名称一样,一次取出一台/多台服务器(看策略配置)进行新版本更新。当取出的服务器新版确保无问题后,接着采用同等方式更新后面的服务器k8s创建副本应用程序的最佳方法就是部署(Deployment),部署自动创建副本集(ReplicaSet),副本集可以精确地控制每次替换的Pod数量,从而可以很好的实现滚动更新。原创 2023-02-26 14:34:46 · 1222 阅读 · 2 评论 -
【Kubernetes】第十篇 - 灰度发布的介绍与实现
前几篇,已经介绍了环境搭建、Deployment 部署对象、Service 服务、Ingress 路由转发;本篇,介绍灰度发布的实现;灰度发布,也叫金丝雀发布;是一种应用的发布方式;金丝雀发布的命名:金丝雀对瓦斯气体非常敏感,矿工在下井前会先向井里放一只金丝雀,如果金丝雀不叫了,代表瓦斯浓度高;灰度发布,一般会在现存旧版本应用的基础上,启动一个新版本应用,这个新版本应用并不会直接让用户访问,而是提供给测试人员测试使用,若测试通过才会将真实的用户流量逐步导入到新版本应用中;原创 2023-02-25 20:33:44 · 4284 阅读 · 3 评论 -
【Kubernetes】第九篇 - k8s 专栏目录
节前更新了几篇 k8s 的专栏文章,由于时间紧张感觉写的比较乱,继续写下去意义并不大;所以,这里还是先写一篇 k8s 专栏的目录梳理一下整体思路,用于指导一下方向;原创 2023-02-24 08:39:25 · 275 阅读 · 0 评论 -
【Kubernetes】第八篇 - Ingress 路由转发的介绍与使用
上一篇,通过 Service 服务,解决了 pod 的 IP 漂移问题;K8s 的 Pod 和 Service 通过 NodePort 将服务暴露到外部,随着服务增加端口就变得不好管理;所以,通常情况下会设计一个 Ingress 进行路由转发方便统一管理;本篇,介绍 Ingress 的使用;ingress:意思是入口、进入;Ingress 是 kubernetes 组件,能够帮助服务实现负载均衡:根据路径前缀匹配、权重、cookie、header 值访问不同的服务;原创 2023-02-23 08:55:20 · 2864 阅读 · 0 评论 -
【Kubernetes】第七篇 - Service 服务介绍和使用
上一篇,通过配置一个 Deployment 对象,在内部创建副本集对象,副本集帮我们创建了 3 个 pod 副本由于 pod 存在 IP 漂移现象,pod 的创建和重启会导致 IP 变化;本篇,介绍 Service 服务,解决 pod 的 IP 漂移问题;deployment 是无状态的deployment 并不会对 pod 进行网络通信和分发Pod 的 IP 在运行时还会经常进行漂移且不固定想访问服务需要使用 Service 组织统一的 Pod 访问入口。原创 2023-02-22 18:02:15 · 667 阅读 · 1 评论 -
【Kubernetes】第六篇 - Deployment 部署对象
上一篇,介绍了 k8s 的两种部署:直接部署和 yaml 配置文件部署;本篇,介绍 Deployment 部署对象;服务配置内网IP外网IP说明ci-server2c4gk8s-master2c4g47.93.9.45k8s-node2c1gdeployment 部署,一个部署可以管理多个 Pod;使用 deployment 部署对象,能够实现多个 Pod 实例的批量启动和管理;原创 2023-02-21 08:58:45 · 828 阅读 · 0 评论 -
【Kubernetes】第五篇 - k8s 应用部署演示 - 直接部署和 yaml 部署
目前,购买了 3 台阿里云服务器,完成了构建服务器(ci-server)和 k8s 集群(k8s-master+k8s-node)的搭建;服务配置内网IP外网IP说明ci-server2c4gk8s-master2c4g47.93.9.45k8s-node2c1g专栏最终会实现基于 Jenkins 和 k8s 的持续集成;直接部署 nginxyaml 配置文件部署 mysql;原创 2023-02-20 08:56:49 · 1406 阅读 · 0 评论 -
【Kubernetes】第四篇 - k8s 集群环境搭建
前两篇,购买了 3 台阿里云服务器并完成了 ci-server 构建服务器的环境安装与配置;服务配置内网IP外网IP说明ci-server2c4gk8s-master2c4g47.93.9.45k8s-node2c1g本篇,配置 k8s-master 和 k8s-node 两台服务器,搭建 k8s 集群;备注:考虑服务器成本使用 1 主+1 从的集群配置,有条件也可以使用 1 主 + 2 从;kubernetes 简称 K8s,其中数字 8 指代中间的 8 个字符ubernete。原创 2023-02-19 16:50:23 · 632 阅读 · 0 评论 -
【Kubernetes】第三篇 - ci-server 构建节点 Docker、Jenkins 环境搭建
上一篇,主要介绍了阿里云服务器的采购和简单配置:服务配置内网IP外网IP说明ci-server2c4gk8s-master2c4g47.93.9.45k8s-node2c1g本篇,对 ci-server 进行环境安装与配置;构建机 ci-server(2c4g),用于提供 ci 所需的 Jenkins 服务、 Docker 私有仓库;流程如图:IDE 本地开发,上传代码到 Git 仓库;手动或自动触发 jenkins 拉取指定代码仓库并执行构建任务;原创 2023-02-18 14:52:28 · 773 阅读 · 1 评论 -
【Kubernetes】第二篇 - 购买阿里云 ECS 实例
ECS 配置启动服务说明2核4Gci-server2核4Gk8s-master1核1Gk8s-node1 台用于做 ci 构建机,构建镜像(最低配置需要满足 2c4g);2 台用于做 K8S 集群,主从各一台:master + node;本篇,主要介绍阿里云服务器的采购和简单配置(仅做简单记录,没有技术含量)原创 2023-02-17 20:05:12 · 1065 阅读 · 0 评论 -
【Kubernetes】第一篇 - CI/CD 简介与 ECS 服务规划
使用 Gitlab 作为代码的管理和托管工具;使用 Gitlab CI 持续集成工具;使用 Docker 开源应用容器引擎;使用 Harbor 企业级 Docker 私有镜像仓库;使用 Kubernetes 作为容器编排和管理工具;使用 Helm 作为 Kubernetes 的包管理器;结合上述技术特点,以 k8s 的使用为核心,从 0 到 1 实现一个前后端项目的持续集成;ci/cd 简介;服务规划及阿里云 ECS 服务器采购;原创 2023-02-16 19:52:56 · 592 阅读 · 0 评论