最全【云原生】docker+k8微服务容器化实战_k8 微服务

zhang123 · · 13 次点击 · · 开始浏览    

 

 

最全【云原生】docker+k8微服务容器化实战_k8 微服务

获课:yinheit.xyz/707/

 

获取ZY↑↑方打开链接↑↑

 

K8s 核心概念1

 

  • Pod:是 K8s 中最小的部署单元,是一个或多个容器的集合,这些容器共享同一个网络、存储和配置。通常一个 Pod 内的容器紧密相关,比如一个 Web 应用容器和一个日志收集容器。
  • 服务(Service):为 Pod 提供一个固定的访问入口,通常是一个虚拟 IP,通过标签选择器关联到对应的 Pod,负责负载均衡,使得集群中的其他服务能够稳定地访问到目标应用。
  • 部署(Deployment):用于管理 Pod 的副本,定义了应用的期望状态,包括所需的 Pod 副本数量、使用的镜像等信息,K8s 会自动保证实际状态与期望状态一致,实现自动扩缩容和滚动更新。
  • 节点(Node):是 K8s 集群中的机器,可以是虚拟机或物理机,每个节点上运行着一个或多个 Pod,K8s 在多个节点之间调度和分配资源。
  • 副本集(ReplicaSet):用来确保 Pod 的副本数量保持在指定数量,当 Pod 出现故障时,会自动创建新的 Pod 来替代。
  • 入口(Ingress):是一种用于 HTTP 和 HTTPS 路由的 API 对象,为外部客户端提供访问 Kubernetes 服务的入口,可实现域名级别的路由和负载均衡。

用 K8s 部署微服务的一般步骤2

 

  1. 准备 Docker 镜像:将微服务应用及其依赖打包成 Docker 镜像。例如,一个 Node.js 应用,通过编写 Dockerfile 来定义镜像的构建过程,然后使用docker build命令构建镜像。
  2. 部署 K8S 集群:可以使用 Minikube 在本地搭建集群用于开发和测试,也可以选择云服务商提供的 Kubernetes 服务,如谷歌容器引擎(GKE)、亚马逊弹性容器服务(EKS)等。
  3. 定义 K8S Deployment:创建一个 Deployment 配置文件(如app - deployment.yaml),定义 Pod 的副本数量、使用的镜像、标签等信息,通过kubectl apply -f命令应用配置,K8s 会根据配置创建并管理 Pod。
  4. 暴露 Service:创建一个 Service 配置文件(如app - service.yaml),将外部流量路由到 Deployment,定义服务的端口、目标端口、选择器等信息,同样使用kubectl apply -f命令应用配置。
  5. 访问微服务:通过 Service 的外部 IP 或域名(如果配置了 Ingress)来访问微服务,可以使用kubectl get services命令获取 Service 的相关信息。

K8s 在微服务中的作用

 

  • 资源调度与管理:根据资源需求和集群状况,自动调度 Docker 容器到合适的节点上运行,实现资源的优化利用,避免资源浪费或不足的情况。
  • 服务发现与负载均衡:K8s 的服务发现机制允许微服务之间轻松通信,客户端可以通过服务名称来访问服务,而不必关心具体的 Pod IP 地址。同时,通过内置的负载均衡功能,自动分配请求到多个实例,确保服务的高响应性,提高系统的并发处理能力。
  • 故障恢复与自我修复:当检测到容器或 Pod 故障时,K8s 能够自动重启或重新调度容器,确保服务的连续性,减少因故障导致的服务中断时间,提高系统的可靠性和稳定性。
  • 滚动更新与版本控制:支持平滑的滚动更新,可以在不停机的情况下逐步更新应用版本,降低更新风险。通过控制更新的速度和策略,可以及时发现和处理更新过程中出现的问题,确保服务的可用性。
13 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传