kubernetes 概念&部署

来源:互联网 发布:微信支付 java开发 编辑:程序博客网 时间:2024/06/06 02:27

一些概念

Kubernetes是Google开源的容器集群管理系统。它构建Ddocker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等整一套功能,本质上可看作是基于容器技术的mini- PaaS平台。

kubernates源码:
推荐阅读:http://www.open-open.com/news/view/acfe1f
它是restful风格设计的api

ps:
rest即reppresentation state transfer
指(资源)表示层状态改变,例如xx.txt,xx所对应的数据是资源,而.txt是它的表现方式,在http传输中,数据是无状态的,所以传输前后必然有状态的改变,web中把改变这个改变动作写在请求头中,有post、get

它也可以简单理解为动词和名词的分开;名词指资源,在网络上即URI,动词指(get\post\put\delete)等操作

操作对象:

在k8s中,可供操作的rest对象有三个:
- 1.pod:基本调度单元
- 2.service:路由代理抽象,解决服务发现问题
- 3.replication controller:pod的复制抽象,解决扩容缩容问题
而这三者通过label联系
这里写图片描述

组件(主要有master和slave两大部分)

master运行三个组件:1. apiserver:作为kubernetes系统的入口,封装了核心对象的增删改查操作,以RESTFul接口方式提供给外部客户和内部组件调用。它维护的REST对象将持久化到etcd(一个分布式强一致性的key/value存储)。2. scheduler:负责集群的资源调度,为新建的pod分配机器。3. controller-manager:负责执行各种控制器,目前有两类:     3.1 endpoint-controller:定期关联service和pod(关联信息由endpoint对象维护),保证service到pod的映射总是最新的。    3.2 replication-controller:定期关联replicationController和pod,保证replicationController定义的复制数量与实际运行pod的数量总是一致的。slave(称作minion)运行两个组件:1. kubelet:负责管控docker容器,如启动/停止、监控运行状态等。它会定期从etcd获取分配到本机的pod,并根据pod信息启动或停止相应的容器。同时,它也会接收apiserver的HTTP请求,汇报pod的态。2. proxy:负责为pod提供代理。它会定期从etcd获取所有的service,并根据service信息创建代理。当某个客户pod要访问其他pod时,访问请求会经过本机proxy做转发

这里写图片描述

部署

共有两台服务器,一台装master,一台node
- master节点上需要部署:kube-apiserver、kube-controller-manager、kube-scheduler、etcd服务。
- node节点上部署:kubelet、kube-proxy、docker和flannel

具体安装
可以参考:
http://blog.csdn.net/u013760355/article/details/68061976
http://www.cnblogs.com/boshen-hzb/p/6639865.html
https://www.kubernetes.org.cn/1870.html

原创粉丝点击