一、Kubernetes基本认识

      它是谷歌开源的容器集群管理系统。主要功能包括:

  • 基于容器的应用部署、维护和滚动升级
  • 负载均衡和服务发现

  • 跨机器和跨地区的集群调度

  • 自动伸缩

  • 无状态服务和有状态服务

  • 广泛的 Volume 支持

  • 插件机制保证扩展性

      由于容器体积小且启动快,因此可以在每个容器镜像中打包一个应用程序。不需要与外部的基础架构环境绑定, 因为每一个应用程序都不需要外部依赖。

      它比虚拟机透明,检测管理方便。

二、集群架构

Kubernetes读书笔记
Kubernetes主要由以下几个核心组件组成:

  • etcd保存了整个集群的状态;
  • apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和
    发现等机制;
  • controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
  • scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;
  • kubelet负责维护容器的生命周期,同时也负责Volume(CVI) 和网络(CNI) 的管理;
  • Container runtime负责镜像管理以及Pod和容器的真正运行(CRI) ;
  • kube-proxy负责为Service提供cluster内部的服务发现和负载均衡

三、基本概念

Pod

  • 一个Pod管理一或多个容器

  • pod生命周期短,用volume持久化数据

  • 对象都用yaml/json定义

Node
      至少运行docker(管镜像,容器运行)、kubelet(管生命周期)、kube-proxy(负载均衡)服务来管理pod
Kubernetes读书笔记
Namespace:
      一组资源和对象的集合;包括pods,services,replicationcontroller,deployments等属于一个namespace(默认default),node不属于namespace。

  • 指定namespace命令:
    Kubectl –namespace或者-n

  • 查询:
    Kubectl get namespaces

  • 创建:
    Kubectl create namespace new-namespace

  • 删除:
    Kubectl delete namespaces new-namespace

Service:
      为一组pod提供入口,用于负载均衡和服务发现(pod有生命周期,ip随pod消亡而消失,这样ip和端口号不确定,要稳定,就用service)
匹配labels(pod ip、端口列表),由kube-proxy服务将ip负载均衡到endpoint,服务发现
service自动分配cluster IP和DNS,其他容器可通过IP和DNS访问服务
Kubernetes读书笔记
Annotations:
      Key/value注解,辅助应用部署、安全、调度。deployment用它记录rolling update的状态

保证支撑服务的pod的数量:RC、RS、Deployment:

  • ReplicationController:复制控制器
          保证pod高可用的API对象,监控集群中运行指定数量的pod,少于指定,启动新的pod,多余指定,杀死多余pod。

  • Replica Set:副本集RS

  • Deployment:
          对集群的一次更新操作(创建、更新或滚动升级一个服务),RS不好描述,用deployment描述

Job:
      控制任务的API对象

Ingress:

  • 提供外部入口及路由

  • 提供集群外部访问的URL、负载均衡、SSL终止、HTTP路由,部署一个Ingress Controller来配置规则,监听Ingress和Service的变化,并根据规则配置负载均衡并提供访问入口。

总结:

      遨游在知识的海洋里,需要学的东西还太多,刚开始研究,加油!

相关文章:

  • 2021-06-04
  • 2021-06-01
猜你喜欢
  • 2021-08-01
  • 2021-08-23
  • 2021-08-11
  • 2021-11-09
  • 2021-06-16
  • 2022-12-23
  • 2021-08-25
相关资源
相似解决方案