SpringCloud on Kubernetes 索引目录

  1. 动手修改kubeam生成证书有效期为100年 已填坑
  2. 搭建高可用kubernetes 已填坑
  3. 部署kubernetes基本插件已填坑
  4. 从部署mysql聊一聊有状态服务和PV及PVC已填坑
  5. 搭建代码仓库gitlab服务器已填坑
  6. 如何构建SpringBoot的Docker镜像已填坑
  7. SC微服务内的java代码如何分层已填坑
  8. 在kubernetes上运行eureka集群已填坑
  9. 在kubernetes上运行SpringCloud配置中心已填坑
  10. 部署业务并使用Feign进行服务间调用(附带一部分源码分析)已填坑
  11. 在kubernetes上运行Spring Cloud Gateway(一)已填坑
  12. 在kubernetes上运行Spring Cloud Gateway(二)已填坑
  13. SC微服务体系下异常透明处理
  14. Gitlab Runner 构建自动化CI/CD
  15. 在kubernetes中部署zookeeper集群
  16. Spring Cloud 的灰度发布
  17. 在kubernetes中部署Kafka集群
  18. Spring Gateway
  19. 在kubernetes上运行elasticsearch集群已填坑
  20. Zipkin分布式链路追踪
  21. EFK分布式日志管理
  22. Ingress Nginx
  23. 优雅的使用Prometheus Operator已填坑
  24. Prometheus Operator监控SpringCloud已填坑
  25. Prometheus Operator监控ETCD已填坑
  26. kubernetes dashboard ui图表

微信群

可以添加我的微信

优雅的使用Prometheus Operator

前言

为了方便大家使用prometheus,Coreos出了提供了一个OperatorPrometheus Operator,而为了方便大家一站式的监控方案就有了项目kube-prometheus是一个脚本项目,它主要使用jsonnet写成,其作用呢就是模板+参数然后渲染出yaml文件集,主要是作用是提供一个开箱即用的监控栈,用于kubernetes集群的监控和应用程序的监控。
这个项目主要包括以下软件栈

  • Prometheus Operator
  • Highly available Prometheus
  • Highly available Alertmanager
  • Prometheus node-exporter
  • Prometheus Adapter for Kubernetes Metrics APIs
  • Kube-state-metrics
  • Grafana

说是开箱即用,确实也是我们只需要clone下来,然后kubectl apply ./manifests,manifests目录中生成的是预先生成的yaml描述文件,有诸多不方便的地方,比如说

  • 镜像仓库的地址都在gcr和query.io,这两个地址国内拉起来都费劲
  • 没有持久化存储promethus的数据

    阅读全文 »

从部署mysql聊一聊有状态服务和PV及PVC

前言

部署mysql之前我们需要先了解一个概念有状态服务。这是一种特殊的服务,简单的归纳下就是会产生需要持久化的数据,并且有很强的I/O需求,且重启需要依赖上次存储到磁盘的数据。如典型的mysql,kafka,zookeeper等等。

在我们有比较优秀的商业存储的前提下,灰常推荐使用有状态服务进行部署,计算和存储分离那是相当的爽的。在实际生产中如果没有这种存储,才有localPV也是不错的选择,当然local pv其实呢和hostPath是一样的。当然我们在开发测试环境也是可以自己搭建一套简单的如NFS服务,来享受存储和计算分离的爽快感。

kubernetes中定义一种了资源类型Stateful Service即有状态服务,有状态服务需要的持久化数据动态绑定我们可以利用存储的API PersistentVolume(PV)和PersistentVolumeClaim(PVC)来进行需要的相关数据的绑定和存储。

阅读全文 »

在kubernetes上运行SpringCloud配置中心

前言

在分布式系统中,我们的配置管理起来是很麻烦的一件事儿,特别是在如果没有配置中心的时候。在我们java开发中,一般而言会将敏感配置信息(如DB的user,password),数据库的地址,redis地址等等,
一系列配置信息和项目代码解耦,根据每个环境单独配置,这样一来是方便不需要改代码,也不需要在项目中冗余多份,二来是更加的安全。那么分离之后我们将面临的问题是怎么读取这个配置文件:

阅读全文 »

在kubernetes上运行eureka集群

前言

eureka 在springcloud体系中,主要实现一个注册中心的角色,所有的服务都将注册到eureke中,调用用者将从这里通过名称获取到对应的服务的IP集合列表。
作为一个分布式系统eureka在CAP中,选中了AP,优先保证可用性,放弃了强一致性,这样设计也符合注册中心的需要。
当发生网络分区故障(15分钟内超过85%的节点都没有正常的心跳),eureka会启用注册保护,即维持住当前心跳虽然失败的服务列表,并不进行删除。并能正常的提供查询服务(虽然不是最新)和注册服务(即不会同步到其他eureka节点),当网络恢复时,eureka会正确的同步信息,和恢复删除过期节点信息。

阅读全文 »