Kubernetes各组件介绍
kubernetes:构建k8s集群
资源清单: 资源 掌握资源清单语法 编写pod 掌握pod生命周期
pod控制器:掌握各种控制器特点以及使用定义方式
服务发现:掌握LVC原理机器构建方式
存储:掌握多种存储的特点 并且能够在不同环境中选择合适的存储方案(有自己见解)
调度器:掌握调度器原理,根据要求把pod定义到想要的节点运行
安全:集群的认证 鉴权 访问控制 原理及流程
HELM:相当于Linux的yum,掌握HELM原理 HELM模板自定义 部署常用插件或附件
运维:修改kubeadm 达到证书可用期限10年 能够构建高可用kubernetes集群
服务分类:
有状态服务:DBMS
无状态服务:LVS apache
高可用集群副本数目最好是大于等于3的基数
kubernetes组件说明
apiserver:所有服务访问统一入口
CrontrollerMAnager(控制器):维护副本的期望数目
scheduler:调度器 负责调度任务,选择合适节点进行分配任务
etcd: 键值对数据库 存储k8s集群重要信息 k8s中重要的存储;etcd的官方将它定位成一个可信赖的分布式键值
存储服务,他能够将整个分布式集群存储的一些数据,协助分布式集群正常运转。 go语言编写、键值对数据库
kubelet:直接跟容器引擎交互实现容器的生命周期管理
kube proxy:负责写入规则至iptables、IPVS实现服务的映射访问
COREDNS:可以为集群中的SVC创建一个域名IP的对应关系,访问其他pod可以通过Coredns,也是负载均衡重要组件
DASHBORAD:给k8s集群提供一个B/S结构访问体系
ingress controller:官方只能实现四层代理,ingress可以实现七层代理
federation:提供一个可以跨集群中心多k8s统一管理功能
Prometheus:提供k8s的集群监控能力
ELK:提供k8s集群日志统一分析介入能力
Pod概念
自主式pod
在同一个pod容器的端口不能冲突,同一个pod公用一个网络栈(pause)
控制器管理的pod
ReplicationController & ReplicaSet & Deloyment介绍:
ReplicationController(RC):ReplicationController 用来确保容器应用的的副本数始终保持在用户定义的副本数,即如果用容器异常退出,会自动创建新的pod来替代;而如果异常多出来的容器的也是被自动回收。在新版本的kebernetes中建议使用REplicaset来取代ReplicationControlle。
ReplicaSet(RS):ReplicaSet跟ReplicationController没有本质的不同,只是名字不一样,而且ReplicaSet支持集合selector。
Deloyment:虽然ReplicaSet可以单独使用,但是一般还是建议使用Deloyment来自动管理ReplicaSet,这样就无需担心跟其他机制的不兼容问题(比如 ReplicaSet不支持rolling-update当时Deloyment支持),Deloyment支持滚动更新,Deloyment创建时会创建RS
网络的通讯方式
kubernetes的网络模型假定了所有Pod都在一个可以直接连同的扁平的网络空间中,这在GCE(Google Compute Engine)里面是现成的网络模型,kubernetes假定这个网络已经存在。而在私有云里搭建kubernetes集群,就不能假定这个网络已经存在了。我们需要自己实现这个网络假设,将不同节点上的docker容器之间相互访问打通,然后运行kubernetes