k8s集群架构

  • Controller Manager,即控制平面,用于调度程序以及节点状态检测。

  • Nodes,构成了 Kubernetes 集群的集体计算能力,实际部署容器运行的地方。

  • Pods,Kubernetes 集群中资源的最小单位。

  • Master节点:Master节点是Kubernetes集群的控制中心,用于管理和控制整个集群。它包含以下组件:

  • kube-apiserver:提供Kubernetes API的接口服务,处理来自用户和其他组件的请求。

  • etcd:一个高度可靠的分布式键值存储数据库,保存集群的所有配置数据。

  • kube-scheduler:负责决定将容器分配到哪个节点上运行。

  • kube-controller-manager:包含许多控制器,用于处理集群中的各种资源(如Pod、Service、PersistentVolume等)。

  • cloud-controller-manager:用于与宿主云平台交互,例如管理云服务提供商的资源。

  • Node节点:Node节点是Kubernetes集群中的工作节点,用于运行容器化应用程序。它包含以下组件:

  • kubelet:运行在每个Node节点上的主要管理代理,负责管理和监控在节点上的容器。

  • kube-proxy:负责Kubernetes服务发现和负载均衡,将流量转发到适当的Pod。

  • 容器运行时(Container Runtime):例如Docker、containerd等容器运行时,用于在Node节点上创建和管理容器。

  • 资源对象:

  • Pod:Kubernetes中的最小部署和调度单元,包含一个或多个相关容器。Pod代表了一组紧密关联的容器,并提供了它们之间共享和通信的环境。

  • Service(服务):定义了一组Pod的访问方式和网络规则,提供了一种抽象机制来访问应用程序。

  • Deployment:用于定义和管理Pod副本的对象,确保指定数量的Pod副本处于运行状态。

  • ConfigMap(配置映射):ConfigMap用于存储应用程序的配置信息,如环境变量、配置文件等。ConfigMap可以通过键值对的形式来存储配置信息,并且可以被一个或多个Pod使用。

  • task:定时任务

  • Namespace:用于将集群划分为多个虚拟集群,以提供更好的资源管理、访问控制和隔离性能力。

  • 其他组件:

  • Ingress Controller:负责将外部请求路由到集群内不同Service的组件。

  • DNS:为集群中的Pod提供域名解析服务,使Pod能够相互通信。

  • Dashboard:提供基于Web界面的Kubernetes集群管理工具。

  • Volume:用于提供持久化存储的抽象机制,使容器能够在不同节点上运行时保持数据的持久性。

  • 把项目代码部署到Kubernetes(K8s)上:

    • 构建docker镜像

    • 连接到Kubernetes集群:kubectl,连接到目标Kubernetes集群

    • 创建Kubernetes部署配置文件:在Kubernetes中,使用部署(Deployment)或状态集(StatefulSet)来定义和管理应用程序的部署。

    • 创建Kubernetes服务配置文件:在Kubernetes中,服务(Service)用于公开和暴露应用程序内部的服务。

    • 验证部署kubectl get pods 和 kubectl get services 

 

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值