Kubernetes容器编排工具

Kubernetes是谷歌严格保密十几年的秘密武器—Borg的一个开源版本,是Docker分布式系统解决方案。

Kubernetes核心概念

k8s-master 负责任务调度,控制节点

k8s-node1 承载运行pod(容器)

k8s-node2 承载运行pod(容器)

k8s-node3 承载运行pod(容器)

Master节点

Master主要负责资源调度,控制副本,和提供统一访问集群的入口。--核心节点也是管理节点

 Node节点

Node是Kubernetes集群架构中运行Pod的服务节点。Node是Kubernetes集群操作的单元,用来承载被分配Pod的运行,是Pod运行的宿主机,由Master管理,并汇报容器状态给Master,同时根据Master要求管理容器生命周期。

 Node IP

 Node节点的IP地址,是Kubernetes集群中每个节点的物理网卡的IP地址,是真实存在的物理网络,所有属于这个网络的服务器之间都能通过这个网络直接通信。

 Pod

Pod直译是豆荚,可以把容器想像成豆荚里的豆子,把一个或多个关系紧密的豆子包在一起就是豆荚(一个Pod)。在k8s中我们不会直接操作容器,而是把容器包装成Pod再进行管理运行于Node节点上, 若干相关容器的组合。Pod内包含的容器运行在同一宿主机上,使用相同的网络命名空间、IP地址和端口,能够通过localhost进行通信。Pod是k8s进行创建、调度和管理的最小单位,它提供了比容器更高层次的抽象,使得部署和管理更加灵活。一个Pod可以包含一个容器或者多个相关容器。

   Pod 就是 k8s 集群里的"应用";而一个平台应用,可以由多个容器组成。

 Namespace

 命名空间将资源对象逻辑上分配到不同Namespace,可以是不同的项目、用户等区分管理,并设定控制策略,从而实现多租户。命名空间也称为虚拟集群。

 Kubernetes架构和组件

架构:

 

 主从分布式架构,Master/Node

 组件:

Kubernetes Master:

集群控制节点,负责整个集群的管理和控制,基本上Kubernetes所有的控制命令都是发给它,它来负责具体的执行过程,我们后面所有执行的命令基本都是在Master节点上运行的;

包含如下组件:
1.Kubernetes API Server
作为Kubernetes系统的入口,其封装了核心对象的增删改查操作,以RESTful API接口方式提供给外部客户和内部组件调用。维护的REST对象持久化到Etcd中存储。

2.Kubernetes Scheduler
为新建立的Pod进行节点(node)选择(即分配机器),负责集群的资源调度。组件抽离,可以方便替换成其他调度器。

3.Kubernetes Controller
负责执行各种控制器,目前已经提供了很多控制器来保证Kubernetes的正常运行。
   - Replication Controller
       管理维护Replication Controller,关联Replication Controller和Pod,保证Replication Controller定义的副本数量与实际运行Pod数量一致。

​  - Deployment Controller
       管理维护Deployment,关联Deployment和Replication  Controller,保证运行指定数量的Pod。当Deployment更新时,控制实现Replication  Controller和 Pod的更新。

   - Node Controller
      管理维护Node,定期检查Node的健康状态,标识出(失效|未失效)的Node节点。

   - Namespace Controller
      管理维护Namespace,定期清理无效的Namespace,包括Namesapce下的API对象,比如Pod、Service等。

   - Service Controller
      管理维护Service,提供负载以及服务代理。

   - EndPoints Controller
      管理维护Endpoints,关联Service和Pod,创建Endpoints为Service的后端,当Pod发生变化时,实时更新Endpoints。

   - Service Account Controller
      管理维护Service Account,为每个Namespace创建默认的Service Account,同时为Service Account创建Service Account Secret。

   - Persistent Volume Controller
      管理维护Persistent Volume和Persistent Volume  Claim,为新的Persistent Volume Claim分配Persistent Volume进行绑定,为释放的Persistent  Volume执行清理回收。

   - Daemon Set Controller
      管理维护Daemon Set,负责创建Daemon Pod,保证指定的Node上正常的运行Daemon Pod。

- Job Controller
      管理维护Job,为Jod创建一次性任务Pod,保证完成Job指定完成的任务数目

   - Pod Autoscaler Controller
      实现Pod的自动伸缩,定时获取监控数据,进行策略匹配,当满足条件时执行Pod的伸缩动作。

Kubernetes Node:
除了Master,Kubernetes集群中的其他机器被称为Node节点,Node节点才是Kubernetes集群中的工作负载节点,每个Node都会被Master分配一些工作负载(Docker容器),当某个Node宕机,其上的工作负载会被Master自动转移到其他节点上去;

包含如下组件:
1.Kubelet
负责管控容器,Kubelet会从Kubernetes API Server接收Pod的创建请求,启动和停止容器,监控容器运行状态并汇报给Kubernetes API Server。

2.Kubernetes Proxy
负责为Pod创建代理服务,Kubernetes Proxy会从Kubernetes API  Server获取所有的Service信息,并根据Service的信息创建代理服务,实现Service到Pod的请求路由和转发,从而实现Kubernetes层级的虚拟转发网络。

3.Docker Engine(docker),Docker引擎,负责本机的容器创建和管理工作;  

4.Flanneld网络插件
      

数据库

etcd数据库,可以部署到master、node上,推荐独立部署
分布式键值存储系统。用于保存集群状态数据,比如Pod、Service等对象信息

注:docker只是k8s支持的底层容器的一种,k8s还支持另外一种容器技术,名为rocket。

 常用镜像仓库

daocloud的docker镜像库:

daocloud.io/library

docker-hub的k8s镜像库:

mirrorgooglecontainers

aliyun的k8s镜像库:

registry.cn-hangzhou.aliyuncs.com/google-containers

aliyun的docker镜像库web页面:

  阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

google的镜像库web页面:

 https://console.cloud.google.com/gcr/images/google-containers?project=google-containersicon-default.png?t=N0U7https://console.cloud.google.com/gcr/images/google-containers?project=google-containers

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes是一个容器编排及其自动化管理的工具,它可以帮助我们管理大量的Docker容器。随着业务增长,如果需要手动管理每一个Docker容器,将会增加我们的工作量。因此,Kubernetes成为我们在学习Docker中需要进阶的知识。在Kubernetes中,集群中的每个非master节点都运行两个进程:kubelet和kube-proxy。kubelet与master节点进行通信,而kube-proxy是一种网络代理,将Kubernetes的网络服务代理到每个节点上。Kubernetes提供了健康检查、自修复、自动扩容缩容、服务发现和负载均衡等功能,使我们对于大量的Docker容器管理更加方便。 #### 引用[.reference_title] - *1* *3* [Docker(二):理解容器编排工具Kubernetes内部工作原理](https://blog.csdn.net/dengyu810/article/details/104224713)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [kubernetes(k8s)容器编排工具基础概念](https://blog.csdn.net/weixin_41358004/article/details/103676487)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值