参考书籍: [再也不踩坑的Kubernetes实战指南]
本节主要演示使用 kubeadm 安装 Kubernetes 高可用集群,测试环境可以采用 kubeadm 安装,这也是目前官方默认的安装方式,比二进制安装方式更简单,可以让初学者快速上手并测试。目前 GitHub 上也有很多基于 Ansible 的自动化安装方式,但是为了更好地学习 Kubernetes,还是建议体验一下 Kubernetes 的手动安装过程,以熟悉 Kubernetes 的各个组件。
more >>生如蝼蚁当立鸿鹄之志, 命如薄纸应有不屈之心!
参考书籍: [再也不踩坑的Kubernetes实战指南]
本节主要演示使用 kubeadm 安装 Kubernetes 高可用集群,测试环境可以采用 kubeadm 安装,这也是目前官方默认的安装方式,比二进制安装方式更简单,可以让初学者快速上手并测试。目前 GitHub 上也有很多基于 Ansible 的自动化安装方式,但是为了更好地学习 Kubernetes,还是建议体验一下 Kubernetes 的手动安装过程,以熟悉 Kubernetes 的各个组件。
more >>参考书籍:[基于 Kubernetes 的容器云平台实战]
Kubernetes 提供 Replication Controller(简称 “RC”)来管理 Pod,Replication Controller 确保任何时候 Kubernetes 集群中有指定数量的 Pod 副本在运行。如果少于指定数量的 Pod 副本,Replication Controller 会启动新的 Pod,反之会杀死多余的以保证数量不变。当 Pod 失败,被删除或被终结时,RC 会自动创建新的 Pod 来保证副本数量,所以即使只有一个 Pod,也应该使用 RC 来进行管理。除此之外,RC 还提供了一些更高级的特性,比如滚动升级,升级回滚等。
more >>参考来源:
EFK 是用于 Kubernetes 集群的日志收集工具,我们可以根据自己的业务情况,选择日志收集工具,比如还可以选择以 Sidecar 形式运行在 Pod 中的 Filebeat。这里介绍持久化安装 EFK 至 Kubernetes 集群,用于收集集群的相关日志,但是在生产环境中不建议将 EFK 安装到 Kubernetes 集群中,可以选择安装在集群之外,也可以将日志输出到外部的 ES 集群。
more >>参考文章:
Kubernetes 集群备份是一大难点。虽然可以通过 etcd 来进行备份来实现 K8S 集群备份,但是这种备份很难恢复单个 Namespace。
Velero 对于 K8s 集群数据的备份和恢复,以及复制当前集群数据到其他集群等都非常方便。可以在两个集群间克隆应用和命名空间,来创建一个临时性的开发环境。
文章来源:Kubernetes 全站架构师
StatefulSet(有状态集,缩写为 sts) 常用于部署有状态的且需要有序启动的应用程序。比如在进行 SpringCloud 项目容器化时,Eureka 的部署是比较适合用 StatefulSet 方式部署的,也可以给每个 Eureka 实例创建一个唯一且固定的标识符,并且每个 Eureka 实例无需配置多余的 Service,其余 Spring Boot 应用可以直接通过 Eureka 的 Headless Service 即可进行注册。
more >>k8s 1.19 版本以上需要单独安装 snapshot 控制器,才能完成 pvc 的快照功能,所以在此提前安装下,如果是1.19以下版本,不需要单独安装;
项目地址: external-snapshotter
卷快照功能取决于卷快照控制器和卷快照 CRD。卷快照控制器和 CRD 都独立于任何 CSI 驱动程序。无论集群上部署了多少 CSI 驱动程序,每个集群都必须只运行一个卷快照控制器实例和一组卷快照 CRD。
more >>ETCD 是用于共享配置和服务发现的分布式,一致性的 KV 存储系统。ETCD 是CoreOS 公司发起的一个开源项目,授权协议为 Apache。
ETCD 是 k8s 集群极为重要的一块服务,存储了集群所有的数据信息。同理,如果发生灾难或者 etcd 的数据丢失,都会影响集群数据的恢复。
查看 etcd 集群状态
1 | export ETCDCTL_API=3 |
本文章将演示如何使用二进制方式部署 k8s 高可用集群,这里部署的 kubernetes 版本为 1.25.x。本次部署使用 5 台虚拟机,系统版本为 CentOS 7.9,分别为 3台 Master,2台 Node。集群相关配置如下
参考课程:Kubernetes 全站架构师
Kubernetes 提供了一种更加简单的更新 RC 和 Pod 的机制,叫做 Deployment。通过在 Deployment 中描述期望的集群状态,Deployment Controller 会将现在的集群状态在一个可控的速度下逐步更新成期望的集群状态。Deployment 过程如下图所示:
more >>tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia-plus根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true