架构树下IT技术文章收藏微服务

Kubernetes介绍

2018-05-15  本文已影响102人  落日无风

Kubernetes

介绍

核心概念

确保在Kubernetes集群内任何时候都有制定数量的Pod运行。比如:启动新的container来增加Pod, 或者杀死Pod来减少数量。它依赖预先创建的Pod模板。主要的使用方法:

  1. Scaling

    支持动态扩容

  2. Rescheduling

    支持pod数量的稳定

  3. Rolling update

    支持滚动式升级

  4. Multiple release tracks

    根据label去区分,确保多个release task运行

架构

kub.png

Kubernetes集群管理的整个流程为(我们以创建Pod为例):

  1. kubecfg将创建Pod的请求发送到Kubernetes client
  2. Kubernetes Client将请求发送给API server。
  3. API Server根据请求的类型,这里创建Pod时storage类型是pods, 选择Pod REST Storage API对请求作出处理。
  4. REST Storage API对的请求作相应的处理。
  5. 将处理的结果存入高可用键值存储系统Etcd中。
  6. 在API Server响应Kubecfg的请求后,Scheduler会根据Kubernetes Client获取集群中运行Pod及Minion信息。
  7. 依据从Kubernetes Client获取的信息,Scheduler将未分发的Pod分发到可用的Minion节点上。

提供API资源管理入口。所有需要操作资源的,都通过它的API来进行访问。


api-server.png

从上图可以看出Api server是kubernetes的总入口,通过它来接收所有的参数,并调用storage api来处理不同资源的应用。

它与API server通信,负责调度和控制minion上的Pod, 并与etcd, file等通信,读取相关的配置信息。

kubelet.png

Proxy在Minion上,为service提供负载均衡和路由。 Proxy提供TCP/UDP socket的proxy, 它从etcd中读取services和Endpoint的信息,然后在minion上启动进程并监听相应的服务。

Kubernete部署

部署

官方文档

在本机搭建kubernets环境

Step 4: Start services on Master and Minion

On Master

systemctl enable kube-apiserver
systemctl start kube-apiserver
systemctl enable kube-controller-manager
systemctl start kube-controller-manager
systemctl start kube-scheduler
systemctl start kube-scheduler
systemctl enable flanneld
systemctl start flanneld

On Minions

systemctl enable kube-proxy
systemctl start kube-proxy
systemctl enable kubelet
systemctl start kubelet
systemctl enable flanneld
systemctl start flanneld
systemctl enable docker
systemctl start docker
上一篇下一篇

猜你喜欢

热点阅读