Foudation -kubernetes secure Architecture-基础 kuberntes安全架构
1. docker Architecture 1.runcontainerincontainerengine-在容器引擎中运行容器 2.Schedulecontainerseffcient-高效的调度容器 3.Keepcontainersaliveandhealth-保持容器的存活和健康 4.Allowcontainercommunication-允许容器的通信 5.Allowcommondeploymenttechniques-允许通用的部署技术 6.handlevolumes-处理卷 2. kubernetes Architecture 2.1 Contarol Plance Contarol Plance-控制平面,简单的不知道我理解的对不对为master节点上面的etcd scheduler apiserver controler manager 。至于cloud control manager我理解是使用云商托管的kubernets 比如腾讯云的 cke还有阿里云的ack 都有类似的kubernets的托管服务。 见: https://kubernetes.io/docs/concepts/overview/components/#control-plane-components 1. kube-apiserver apiserver 控制平面暴露kubernets的api服务,API服务器是Kubernetes控制平面的前端。 水平扩展 平衡实例之间流量 2. etcd etcd数据库 Consistent and highly-available key value store used as Kubernetes’ backing store for all cluster data 高度一直的kv键值数据库。用作kubernetes的备份与数据存储。 3. kube-scheduler 调度器 监视没有分配节点的新创建的Pod,并选择一个节点以使其运行。调度策略有很多种,官网现学现卖: 1.individualandcollectiveresourcerequirements个体和集体的资源需求 2.hardware/software/policyconstraints硬件/软件/策略约束 3.affinityandanti-affinityspecifications亲和性和反亲和力规范 4.datalocality数据本地性 5.inter-workloadinterference工作负载之间的干扰 6.deadlines生存周期 4. kube-controller-manager Control Plane component that runs controller processes. 控制平面运行控制的进程 节点控制器:负责在节点出现故障时进行通知和响应。 复制控制器:负责为系统中的每个复制控制器对象维护正确数量的Pod。 端点控制器:填充“端点”对象(即,加入“服务和窗格”)。 服务帐户和令牌控制器:为新的名称空间创建默认帐户和API访问令牌 5. cloud-controller-manage 云控制器暂时忽略吧,一般的还接触不到的 2.2. Data Plane Data Plane-----数据平面 。一般理解为work节点 工作节点?主要有kubelet 和kube-proxy服务 1. kubelet 在集群中每个节点上运行的代理。 确保容器在Pod中运行。维护节点上的网络规则.如果有kube-proxy可用,它将使用操作系统数据包过滤层。 否则,kube-proxy会转发流量本身 2. kube-proxy kube-proxy是一个网络代理,它在集群中的每个节点上运行,实现了Kubernetes Service概念的一部分。 3. Container runtime 容器运行时是负责运行容器的程序。 Kubernetes支持多种容器运行时:Docker,Containerd,CRI-O以及Kubernetes CRI(容器运行时接口)的任何实现形式。 3. Addons 组件扩展 注: 插件的命名空间资源属于kube-system命名空间 1.dns域名解析服务 2.Dashboardwebui仪表盘 3.ContainerResourceMonitoring容器资源的监控 4.Cluster-levelLogging集群级别的日志 4. 关于pod之间的通信 注: 默认是全部可以通信的,当然了 可以通过networkpolicy等方式进行隔离 5. PKI (Public Key Infrastructure 公共密钥基础设施) 1 . 关于pki的CA 注: 关于ca学习的不是太透彻,有时间单独的好好学习一下 1.CAisthetrustedrootofallcertificatesinsidetheclusterCA是群集内所有证书的受信任根 2.AllclusterertificatesaresignedbytheCA所有集群的证书都由CA签名 3..Usedbycomponentstovalidateeachother组件用来相互验证 2. Find various K8s certificates 关于Scheduler->Api 和controller-manage->Api 和 kubelet->Api 还有 kubelet server cert