Kubernetes微服务学习之Kubernetes基本概念和应用(下)

5 篇文章 0 订阅

K8s内部反向代理ClusterIp Service

主要学习内容

  • K8s内部反向代理ClusterIp Service原理
  • Petclinic通过ClusterIp Service访问内部MySql Pod

内部服务如果相互访问?

在这里插入图片描述

传统内部反向代理

在这里插入图片描述

K8s内部反向代理

image

ClusterIP Service 内部访问MySql Pod 配置

image

image
在这里插入图片描述

image

kubectl logs petclinit-s12312c 查看指定pod下的日志

ClusterIP Service学习小结

  • ClusterIP Service 是K8S提供的一种内部反向代理机制
  • 复习Service的三种类型
    • ClusterIP 内部服务访问
    • NodePort 对外暴露服务
    • LoadBalancer 对外欂栌服务(公有云)
  • Deployment/Pod发布规范中可以添加环境变量,给Pod传递启动参数
  • 有状态服务一般只能部署1个Pod实例(如果mysql 但是一般不会把数据库放入K8s中)

K8S名字空间Namespace和Kube-Dns

主要学习内容

  • K8S名字空间Namespace原理
  • Kube-Dns域名服务原理

K8s架构部署回顾

在这里插入图片描述

image

K8s名字空间抽象Namespace

在这里插入图片描述

  • Namespace是K8s当中的一种逻辑隔离机制,方便对资源进行逻辑管理,在一个k8s集群当中中可以配置多个Namespace
  • 每个Namespace可以住逻辑上独立的Pods ReplicaSets Services,名字空间的隔离不是物理隔离,实际上不同名字空间的资源根据需要仍然可以进行访问。

Namespace相关脚本

kubectl get ns 可以看到k8s内置支持的namespace 
kubectl get all -n kube-system  查看kube - system下的所有资源文件

内部DNS域名服务解析流程

image

kubectl内部域名解析服务DNS解析流程: petclinic pod 访问mysql service 域名简析过程,当petclinic应用访问mysql service时,
petclinic pod内部操作系统自带的dns client 会自动查询集群内部的dns服务 获得mysql service 对应的clusterIp地址,然后向mysql service 发起调用

在这里插入图片描述

登录到pod内部 执行里面的sh命令 shell 并且是以终端交互式的方式运行

image
在这里插入图片描述

Namespace和Dns域名解析学习小结

  • NameSpace是K8s提供的资源逻辑隔离机制
    • default
    • kube-system
  • K8s内部服务名-> ClusterIP转换
    • linux Dns Client + Kube-Dns配合实现
    • Kube-Dns住在Kube-System中

K8s配置抽象ConfigMap

主要学习内容

  • K8s配置抽象ConfigMap的原理
  • Petclinic + ConfigMap应用
  • ConfigMap配置更新传播

K8s配置抽象ConfigMap

image

  • k8s平台内置支持微服务配置 ,对应的概念就是ConfigMap,他是K8s平台所支持的一种资源,

  • 开发人员将配置填写到configMap当中,发布后K8s支持将ConfigMap当中的配置 以环境变量的方式注入到pod当中,pod中的应用就可以以环境变量的方式来访问配置。

  • configMap也支持以存储卷 volume的形式挂载到pod当中,这样pod中的应用就可以以本地配置文件的形式来访问配置

微服务间进行共享配置:

image

image

使用ConfigMap后项目架构配置文件变更

image

image

在这里插入图片描述
image

通过 “—” 分割 可以将多个发布文件放在一个文件中 一起发布

在这里插入图片描述

ConfigMap相关命令行脚本

kebectl get cm 查看configMap的资源

kubectl describe cm petclinic-config 查看指定configMap 下在资源详情(可以看configMap中的配置项)

ConfigMap变更传播

image

只修改configMap 下的配置信息是不能直接更新petclinic-service中的配置信息,如果需要同时更新,需要更新configMap metadata下的name 以及petclinic-service下的configMapRef,然后重新发布。

从而进行实时更新configMap属性到petclinic-service,原理是会创建一个新的configMap 删掉老的configMap

ConfigMap学习小结

  • ConfigMap是K8S提供的一种配置管理抽象,便于在微服务间共享配置。
  • ConfigMap可以绑定到Pod的环境变量(Enc)中,配置更新传播:
    • 需重启Pod
    • 建议更新ConfigMap的name和引用
  • ConfigMap也可绑定到Pod的持久(Volume),支持配置热更新

K8s机密配置抽象Secret

主要学习内容

  • K8s机密配置抽象Secret的原理和演示
  • 解释Secret的安全性

K8s机密配置抽象Secret

image

  • k8s提供secret这个抽象概念来支持敏感数据配置。secret可以认为是一种特殊的配置,他提供较安全的存储和访问配置的机制。
  • 同样secret也支持俩种常见的方式和pod进行绑定,一种是以环境变量的方式注入到pod当中,另外一种是以存储卷的形式挂载到pod当中。
  • secret他的变更传播特性和configMap也一样,如果以环境变量形式和pod进行绑定,那么secret配置变更的时候,需要重启pod才能够获取最新的secret配置信息。
  • 如果以存储卷的形式挂载到pod,那么secret可以做到热加载,不必要重启pod。

image

Secret配置文件

image

image

Secret配置结果验证

image

image

Secret相关脚本命令

kubectl describe secret petclinic-secret 查看petclinic-secret数据详情

kubectl delete secret petclinic-secret 删除

secret学习小结

  • Secret是K8s提供的一种机密配置抽象,便于在微服务间共享机密配置
  • Secret仅提供有限安全
    • 协助时防止机密数据泄露
    • 为Secret资源设置单独安全访问策略
  • Secret和Pod绑定
    • 环境变量(Env)
    • 持久卷(Volume)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring Cloud Kubernetes 是一种将微服务进行容器化交付的解决方案。本文将介绍完整版的第11章内容,让我们一起来了解吧。 第11章主要涵盖以下三个内容,分别为监控与告警、日志与审计、压测。 在微服务架构中,监控与告警是非常重要的一环。Spring Cloud Kubernetes 提供了丰富的监控与告警功能,可帮助我们监控应用的运行状态和性能指标。我们可以使用 Prometheus 来收集应用的指标,并使用 Grafana 来进行可视化展示。此外,还介绍了如何设置监控的阈值,并通过 Alertmanager 发送告警通知。 日志与审计是另一个重要的方面。Spring Cloud Kubernetes 提供了集中式的日志管理和审计功能,可以将微服务的日志集中存储,并提供查询和分析的能力。我们可以使用 Elasticsearch 和 Kibana 来存储和展示日志数据,并使用 Filebeat 将应用的日志发送到 Elasticsearch 集群。 压测是测试微服务的性能和稳定性的一种方法。在本章中,我们介绍了如何使用 JMeter 进行压力测试。我们需要根据实际需求,编写合适的测试场景和脚本,并设置并发请求数量、持续时间等参数。通过压测,我们可以评估微服务的性能表现,并找出潜在的性能瓶颈。 综上所述,本章介绍了在使用 Spring Cloud Kubernetes 进行微服务容器化交付时,如何实现监控与告警、日志与审计、压测等功能。这些功能的引入可以帮助我们更好地了解和管理微服务的运行状态,提高应用的可靠性和稳定性。 ### 回答2: 【完整版11章】SpringCloud Kubernetes 微服务容器化交付实战是一本介绍在使用 SpringCloud 架构和 Kubernetes 容器化平台上进行微服务交付的实践指南。本书主要包括以下几个方面内容: 首先,本书介绍了 SpringCloud 和 Kubernetes基本概念和原理。SpringCloud 是一套用于构建分布式系统的框架,它提供了诸如服务注册与发现、负载均衡、断路器等功能。Kubernetes 是一个开源的容器编排平台,它可以自动化地管理和调度容器。了解这些基本概念有助于我们在后续的实践中更好地理解和应用。 接着,本书详细介绍了如何将 SpringCloud 微服务容器化并交付到 Kubernetes 平台上。这包括了如何使用 Docker 将微服务打包成容器镜像,如何使用 Kubernetes 部署和管理容器,以及如何通过 Kubernetes 提供的功能实现服务注册与发现、负载均衡等。 在介绍容器化部署和管理微服务的基础上,本书还深入讨论了如何在 Kubernetes 上进行微服务的监控和日志管理。通过使用 Prometheus 和 Grafana 进行监控、使用 ELK(Elasticsearch、Logstash、Kibana)进行日志管理,我们可以及时发现和解决微服务中的问题。 此外,本书还介绍了如何使用 Jenkins 持续集成/持续交付来实现自动化的构建、测试和部署。通过结合 Jenkins 和 Kubernetes 提供的功能,可以实现微服务的全自动化交付,从而提高开发、测试和部署的效率。 最后,本书还对在实际项目中容器化微服务的一些实践经验进行了总结和分享。这包括如何进行容器镜像的管理和版本控制、如何优化容器化微服务的资源使用、如何进行持续集成和部署的自动化等。 总的来说,【完整版11章】SpringCloud Kubernetes 微服务容器化交付实战是一本介绍在 SpringCloud 和 Kubernetes 平台上进行微服务容器化交付的实践指南。它详细介绍了容器化部署和管理微服务的方法,并分享了一些实际项目中的实践经验。这本书对于想要在分布式系统开发中运用微服务和容器化技术的开发人员和系统架构师来说,是一本非常有价值的参考书。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值