基于CentOS7.2安装Kubernetes-v1.2-BB保你大
摘要使用swarm构建docker集群之后我们发现面临很多问题 swarm虽好但是还处于发展阶段功能上有所不足 我们使用kubernetes来解决这个问题
kubernetes 与swarm 比较
优点
[*] 复制集与健康维护
[*] 服务自发现与负载均衡
[*] 灰度升级
[*] 垃圾回收 自动回收失效镜像与容器
[*] 与容器引擎解耦 不仅仅支持docker容器
[*] 用户认证与资源隔离
缺点
大而全意味着 复杂度较高 从部署到使用都比swarm 复杂的多 相对而已swarm比较轻量级 而且跟docker引擎配合的更好 从精神上我是更支持swarm 奈何现在功能太欠缺 几天前发布了一个 SwarmKit的管理功能 功能多了不少 待其完善以后可以重回swarm的怀抱
K8s 核心概念简介
pod
k8s 中创建的最小部署单元就是pod 而容器是运行在pod里面的 pod可以运行多个容器 pod内的容器可以共享网络和存储相互访问
replication controller
复制及控制器:对多个pod创建相同的副本运行在不同节点 一般不会创建单独的pod而是与rc配合创建 rc控制并管理pod的生命周期维护pod的健康
service
每个容器重新运行后的ip地址都不是固定的 所以要有一个服务方向和负载均衡来处理 service就可以实现这个需求 service创建后可以暴露一个固定的端口 与相应的pod 进行绑定
K8s 核心组件简介
apiserver
提供对外的REST API服务 运行在 master节点 对指令进行验证后 修改etcd的存储数据
shcheduler
调度器运行在master节点,通过apiserver定时监控数据变化 运行pod时通过自身调度算法选出可运行的节点
controller-manager
控制管理器运行在master节点 分别几大管理器定时运行 分别为
1)replication controller 管理器 管理并保存所有的rc的的状态
2 )service Endpoint 管理器 对service 绑定的pod 进行实时更新操作 对状态失败的pod进行解绑
3)Node controller 管理器 定时对集群的节点健康检查与监控
4)资源配额管理器 追踪集群资源使用情况
kuctrl (子节点)
管理维护当前子节点的所有容器 如同步创建新容器 回收镜像垃圾等
kube-proxy (子节点)
对客户端请求进行负载均衡并分配到service后端的pod 是service的具体实现保证了ip的动态变化 proxy 通过修改iptable 实现路由转发
工作流程
k8s 安装过程:
一、主机规划表:
IP地址角色安装软件包启动服务及顺序192.168.20.60k8s-master兼minionkubernetes-v1.2.4、etcd-v2.3.2、flannel-v0.5.5、docker-v1.11.2 etcd
flannel
docker
kube-apiserver
kube-controller-manager
kube-scheduler
kubelet
kube-proxy
192.168.20.61k8s-minion1kubernetes-v1.2.4、etcd-v2.3.2、flannel-v0.5.5、docker-v1.11.2 etcd
flannel
docker
kubelet
kube-proxy
192.168.20.62k8s-minion2kubernetes-v1.2.4、etcd-v2.3.2、flannel-v0.5.5、docker-v1.11.2 etcd
flannel
docker
kubelet
kube-proxy
二、环境准备:
系统环境: CentOS-7.2
#yum update
#关闭firewalld,安装iptables
systemctl stop firewalld.service
systemctl disable firewalld.service
yum -y install iptables-services
systemctl restart iptables.service
systemctl enable iptables.service
#关闭selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenforce 0
#添加repo
#tee /etc/yum.repos.d/docker.repo
页:
[1]