摘要:
1)确保容器本身安全; 2)锁定容器的Linux内核; 3)使用基于角色的访问控制(RBAC); 4)保守秘密的辛勤工作; 5)保持网络安全; 阅读全文
摘要:
1)安装和部署:k8s安装很复杂;但是一旦安装完毕,集群就非常强大,Docker Swarm安装非常简单;但是集群不是很强大;2)图形用户界面:k8s有,Docker Swarm无; 3)可伸缩性:k8s支持,Docker Swarm比k8s快5倍; 4)自动伸缩:k8s有,Docker Swarm 阅读全文
摘要:
1)Service创建的时候会向 API Server 用 POST 方式提交一个新的 Service 定义,这个请求需要经过认证、鉴权以及其它的准入策略检查过程之后才会放行; 2)CoreDns 会为Service创建一个dns记录,Service 得到一个 ClusterIP(虚拟 IP 地址) 阅读全文
摘要:
Job控制一组Pod容器,可以通过Job这种资源对象定义并启动一个批处理任务的Job,其中Job所控制的Pod副本是短暂运行的,可以将其视为一组Docker容器,每个Docker容器都仅仅运行一次,当Job控制的所有Pod的副本都运行结束时,对应的Job也就结来。 Job生成的副本是不能自动重启的, 阅读全文
摘要:
release(版本):stable(稳定版)、canary(金丝雀版本)、beta(测试版本)、environment(环境变量):dev(开发)、qa(测试)、production(生产)、application(应用):ui、as(application software应用软件)、pc、sc 阅读全文
摘要:
Helm 是 Kubernetes 的软件包管理工具,Helm能够将一组K8S资源打包统一管理, 是查找、共享和使用为Kubernetes构建的软件的最佳方式。 Helm中通常每个包称为一个Chart,一个Chart是一个目录,优势:1)统一管理、配置和更新这些分散的 k8s 的应用资源文件;2)分 阅读全文
摘要:
Kubernetes集群联邦可以将多个Kubernetes集群作为一个集群进行管理。因此,可以在一个数据中心/云中创建多个Kubernetes集群,并使用集群联邦在一个地方控制/管理所有集群; 阅读全文
摘要:
在Kubernetes集群环境中,通常一个完整的应用或服务涉及组件过多,建议对日志系统进行集中化管理,EFK是 Elasticsearch、Fluentd 和 Kibana 的组合, Elasticsearch:是一个搜索引擎,负责存储日志并提供查询接口; Fluentd:负责从 Kubernete 阅读全文
摘要:
简述Kubernetes网络模型 Kubernetes网络模型中每个Pod都拥有一个独立的IP地址,不管它们是否运行在同一个Node(宿主机)中,都要求它们可以直接通过对方的IP进行访问; 同时为每个Pod都设置一个IP地址的模型使得同一个Pod内的不同容器会共享同一个网络命名空间,也就是同一个Li 阅读全文
摘要:
简述Kubernetes PodSecurityPolicy机制 Kubernetes PodSecurityPolicy是为了更精细地控制Pod对资源的使用方式以及提升安全策略。 在开启PodSecurityPolicy准入控制器后,Kubernetes默认不允许创建任何Pod,需要创建PodSe 阅读全文
摘要:
1)在创建Pod时,通过为Pod指定Service Account来自动使用该Secret; 2)通过挂载该Secret到Pod来使用它; 3)在Docker镜像下载时使用,通过指定Pod的spc.ImagePullSecrets来引用它; 阅读全文
摘要:
Secret对象,主要作用是保管私密数据,比如密码、OAuth Tokens、SSH Keys等信息。 将这些私密信息放在Secret对象中比直接放在Pod或Docker Image中更安全,也更便于使用和分发; 阅读全文
摘要:
RBAC是基于角色的访问控制,是一种基于个人用户的角色来管理对计算机或网络资源的访问的方法, 优势: 1)对集群中的资源和非资源权限均有完整的覆盖; 2)整个RBAC完全由几个API对象完成, 同其他API对象一样, 可以用kubectl或API进行操作; 3)可以在运行时进行调整,无须重新启动AP 阅读全文
摘要:
在对集群进行请求时,每个准入控制代码都按照一定顺序执行。 如果有一个准入控制拒绝了此次请求,那么整个请求的结果将会立即返回,并提示用户相应的error信息,准入控制(AdmissionControl)准入控制本质上为一段准入代码,在对kubernetes api的请求过程中,顺序为:先经过认证 & 阅读全文
摘要:
1)基础设施方面:保证容器与其所在宿主机的隔离; 2)用户权限:划分普通用户和管理员的角色; 3)API Server的认证授权:Kubernetes集群中所有资源的访问和变更都是通过Kubernetes API Server来实现的,因此需要建议采用更安全的HTTPS或Token来识别和认证客户端 阅读全文
摘要:
在Kubernetes集群中,在每个Node(又称Worker)上都会启动一个kubelet服务进程。 该进程用于处理Master下发到本节点的任务,管理Pod及Pod中的容器。 每个kubelet进程都会在API Server上注册节点自身的信息,定期向Master汇报节点资源的使用情况,并通过c 阅读全文
摘要:
1)预选(Predicates):输入是所有节点,输出是满足预选条件的节点。kube-scheduler根据预选策略过滤掉不满足策略的Nodes。如果某节点的资源不足或者不满足预选策略的条件则无法通过预选; 2)优选(Priorities):输入是预选阶段筛选出的节点,优选会根据优先策略为通过预选的 阅读全文
摘要:
K8s API Server作为集群的核心,负责集群各功能模块之间的通信。 集群内的各个功能模块通过API Server将信息存入etcd,当需要获取和操作这些数据时,则通过API Server提供的REST接口(用GET、LIST或WATCH方法)来实现,从而实现各模块之间的信息交互。 1)kub 阅读全文
摘要:
K8s的Ingress资源对象,用于将不同URL的访问请求转发到后端不同的Service,以实现HTTP层的业务路由机制。 K8s使用了Ingress策略和Ingress Controller,两者结合并实现了一个完整的Ingress负载均衡器。 使用Ingress进行负载分发时,Ingress C 阅读全文
摘要:
映射Pod到物理机:将Pod端口号映射到宿主机,即在Pod中采用hostPort方式,以使客户端应用能够通过物理机访问容器应用; 映射Service到物理机:将Service端口号映射到宿主机,即在Service中采用nodePort方式,以使客户端应用能够通过物理机访问容器应用; 映射Servic 阅读全文