Kubernetes集群安全:准入控制Admission Control
2017-05-15
概述 #
kube-apiserver是Kubernetes集群的中心,集群中所有资源的创建和更新都是通过APIServer的Restful API实现的。 因此Kubernetes通过一系列的机制来保证APIServer的安全,包括APIServer的认证、授权以及本文我们要学习的准入控制Admission Control。
...kube-apiserver是Kubernetes集群的中心,集群中所有资源的创建和更新都是通过APIServer的Restful API实现的。 因此Kubernetes通过一系列的机制来保证APIServer的安全,包括APIServer的认证、授权以及本文我们要学习的准入控制Admission Control。
...服务治理用来实现各个微服务实例的注册与发现,是微服务架构中最关键的基础设施。 大多数服务治理框架主要都是实现服务实例的自动化注册和发现。一个服务治理框架一般由以下两部分组成:服务注册和服务发现。
服务注册是指服务在其网络上声明自己上线的过程,一般是在某种服务或数据库中写入数据,这个服务或数据库一般被称作服务注册中心
。
我们已经可以很方便的使用kubeadm快速初始化Kubernetes集群,但kubeadm当前还不能用于生产环境,同时kubeadm初始化的集群的Master节点不是高可用的,后端存储etcd也是单点。因此,本文将基于Kubernetes二进制包手动部署一个高可用的Kubernetes 1.6集群,将启用ApiServer的TLS双向认证和RBAC授权等安全机制。 通过这个手动部署的过程,我们还可以更加深入理解Kubernetes各组件的交互和运行原理。
...本篇记录在日常对Kubernetes集群管理时的一些问题和解决方法。
k8s集群运行一段时间后,有时需要对Node节点进行维护,例如进行内核或已安装软件的升级。 在进行维护之前需要禁止新的Pod调度到该节点上,同时要将该节点上的Pod驱逐到其他的Node上(DaemonSet除外)。 使用如下的命令:
...2018/06:经过一年多的发展Kubernetes的Ingress发生了很大的变化,这篇的很多地方都不适用了。因此决定结合我们目前的使用情况重新写几篇Kubernetes Ingress相关的分享,链接如下,内容是比较入门和初级的实操,请高手勿喷。
...
Kuberntes中API Server的访问控制过程图示如下:
在Kubernetes中,授权(authorization)是在认证(authentication)之后的一个步骤。 授权就是决定一个用户(普通用户或ServiceAccount)是否有权请求Kubernetes API做某些事情。
...在介绍Kubernetes之前,我们先来了解一下云原生架构。 云原生的概念最早在2013年由Pivotal的Matt Stine提出。 经过社区不断完善, 包括Agile Infrastructure, Continuous Delivery, DevOps, Microservices, 12 Factor App等几大主题 。 这几大主题都是一些理论或实践方法,伴随着这些理论和实践必然存在一系列的平台和工具。
...1192.168.61.41 node1
2192.168.61.42 node2
3192.168.61.43 node3
Kubernetes 1.6还没有针对docker 1.13和最新的docker 17.03上做测试和验证,所以这里安装Kubernetes官方推荐的Docker 1.12版本。
1yum install -y yum-utils
2
3yum-config-manager \
4 --add-repo \
5 https://docs.docker.com/v1.13/engine/installation/linux/repo_files/centos/docker.repo
6
7yum makecache fast
查看版本:
...Kubernetes 1.6已结发布,包括9个Stable特性、12个Beta特性、8个Alpha特性,共29个新特性。 Kubernetes 1.6重点关注集群规模扩展和自动化。目前最多支持5000个节点的集群;动态存储配置特性进入Stable;基于角色的访问控制(RBAC)、kubefed、kubeadm以及一些调度特性进入Beta。
...Kubernetes中的Secret资源可以用来存储密码、Token、秘钥等敏感数据。 将这些敏感信息保存在Secret中,相对于暴露到Pod、镜像中更加的安全和灵活。
Kubernetes内置了三种类型的Secret:
为了能从Pod内部访问Kubernetes API,Kubernetes提供了Service Account资源。 Service Account会自动创建和挂载访问Kubernetes API的Secret,会挂载到Pod的 /var/run/secrets/kubernetes.io/serviceaccount目录中。 关于这种类型的Secret我们这里先不展开。
...