kubernetes secure Architecture- kuberntes安全架构
注: 接上文使用腾讯云cvm搭建,安全组默认。vpc网络按照自己需求规划
1 docker Architecture
run container in container engine-在容器引擎中运行容器
Schedule containers effcient-高效的调度容器
Keep containers alive and health- 保持容器的存活和健康
Allow container communication- 允许容器的通信
Allow common deployment techniques-允许通用的部署技术
handle volumes-处理卷
2. kubernetes Architecture
https://cloud.tencent.com/act?from=10680
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/
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. individual and collective resource requirements 个体和集体的资源需求
- 2. hardware/software/policy constraints 硬件/软件/策略约束
- 3. affinity and anti-affinity specifications 亲和性和反亲和力规范
- 4. data locality 数据本地性
- 5. inter-workload interference 工作负载之间的干扰
- 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
命名空间
-
- dns 域名解析服务
-
- Dashboard webui 仪表盘
-
- Container Resource Monitoring 容器资源的监控
-
- Cluster-level Logging 集群级别的日志
4. 关于pod之间的通信
注: 默认是全部可以通信的,当然了 可以通过networkpolicy等方式进行隔离
5. PKI (Public Key Infrastructure 公共密钥基础设施)
1 . 关于pki的CA
注: 关于ca学习的不是太透彻,有时间单独的好好学习一下。
- CA is the trusted root of all certificates inside the cluster CA是群集内所有证书的受信任根
- All cluster ertificates are signed by the CA 所有集群的证书都由CA签名
- Used by components to validate each other 组件用来相互验证
2. Find various K8s certificates
关于Scheduler->Api 和controller-manage->Api 和 kubelet->Api 还有 kubelet server cert