Kubernetes学习(一):入门

Kubernetes是什么?

在笔者看来,Kubernetes是一个微服务框架,是一个管理容器的开源平台。

它能够提供(官方文档介绍):

  • 服务发现和负载均衡

    Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器,如果进入容器的流量很大, Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。

  • 存储编排

    Kubernetes 允许你自动挂载你选择的存储系统,例如本地存储、公共云提供商等。

  • 自动部署和回滚

    你可以使用 Kubernetes 描述已部署容器的所需状态,它可以以受控的速率将实际状态 更改为期望状态。例如,你可以自动化 Kubernetes 来为你的部署创建新容器, 删除现有容器并将它们的所有资源用于新容器。

  • 自动完成装箱计算

    Kubernetes 允许你指定每个容器所需 CPU 和内存(RAM)。 当容器指定了资源请求时,Kubernetes 可以做出更好的决策来管理容器的资源。

  • 自我修复

    Kubernetes 重新启动失败的容器、替换容器、杀死不响应用户定义的 运行状况检查的容器,并且在准备好服务之前不将其通告给客户端。

  • 密钥与配置管理

    Kubernetes 允许你存储和管理敏感信息,例如密码、OAuth 令牌和 ssh 密钥。 你可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥

Kubernetes得到一些特点

  1. 非侵入式,不需要改动原有代码
  2. 平台无关,各语言都能使用
  3. 可以实现自动化部署,自动扩缩容。

Kubernetes结构

我们从下往上看

1、既然Kubernetes是一个管理容器的平台,那么首先会有Container

2、Container会运行在一个Pod上,Pod是Kubernetes中可创建,管理的最小计算单元,Pod可管理一个或多个Container,Pod可被打上标签用于上层组件管理;

3、Pod由一个ReplicaSet来管理,它被称为副本控制器,用于控制相同的Pod在Kubernetes的数量稳定;

4、ReplicaSet会被一个Deployments来管理,Deployments可以为Pod和ReplicaSet提供声明式的更新,也就是说仅需要修改Deployments的配置,就可以动态更新Pods的版本;

5、如何将一组Pods公开为一个对外服务,就要使用到Service,虚线示意即使Pod运行在不同的物理机上,也可被提供为一个服务

6、我们将运行一组Pod的环境称为Node,Node可以是物理机或虚拟机,Kubernetes集群就是多个Node的组成,一主(Master Node)多从(Worker Node);

7、Worker中还会包括

  1. kubelet:用于接受Pod的创建描述,并根据此,控制容器引擎进行容器创建;
  2. kube-proxy:用于实现Service的通信,负载均衡;
  3. container runtime:运行容器的软件,一般是docker。

8、Master中包括

  1. DNS:负责Kubernetes内部的域名解析;
  2. kube-apiserver:提供Kubernetes中各类组件(pod,service等)的增删改查接口;
  3. kube-scheduler:调度Pod到Node上去;
  4. kube-controller-manager:负责通过kube-apiserver对Kubernetes集群进行监控,管理。

9、如何存储集群的各类信息?使用etcd;

10、控制Kubernetes的客户端,kubectl。(安装在服务器,可使用kubectl相关命令)

然后我们就能画一个整体结构图了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值