Kubernetes集群安全:Api Server认证
📅 2017-01-19
Kubernetes提供了三种级别的客户端认证方式:
- HTTPS证书认证,是基于CA根证书签名的双向数字证书认证方式,是最严格的认证
- HTTP Token认证,通过Token识别每个合法的用户
- HTTP Basic认证
HTTP Token认证和Http Basic认证是相对简单的认证方式,Kubernetes的各组件与Api Server的通信方式仍然是HTTPS,但不再使用CA数字证书。
...Kubernetes提供了三种级别的客户端认证方式:
HTTP Token认证和Http Basic认证是相对简单的认证方式,Kubernetes的各组件与Api Server的通信方式仍然是HTTPS,但不再使用CA数字证书。
...Kubernetes的Persistent Volume是对存储的抽象,这个抽象包含两个资源:
PV是集群中的一块网络存储,也是Kubernetes集群的一种资源。 Pod的Volume与PV的区别是:Volume的生命周期和Pod相同,Pod被删除时,Volume和保存在Volume中的数据就被删除了;对于PV,即使挂载PV的Pod被删除了,PV仍然存在,PV上的数据也还在。
...kube-api-server提供Kubernetes各种资源的CRUD和Watch相关的Http Restful Api,是整个集群的中心。
kube-api-server以静态Pod的形式运行在master节点上,内置容器使用hostNetwork。默认监听master节点的8080端口(对应--insecure-port
),HTTPS的端口默认为6443(对应--secure-port
)。
使用kubectl命令时实际上也是和kube-api-server的restful api交互的。
Ceph集群安装完成后,默认的Pool是rbd:
1ceph osd lspools
20 rbd,
一个Ceph集群可以有多个pool,pool是逻辑上的存储池。不同的pool可以有不一样的数据处理方式,例如replica size, placement groups, crush rules,snapshot等等。
...当需要升级集群中的某个服务时,需要停止该服务相关的Pod,pull最新的docker镜像,然后重新启动。 如果一下把所有Pod都停止,服务在升级的时间内会不可用。因此,Kubernetes提供了滚动升级的功能。
集群中有下面的RC:
...Kubernetes通过Service资源在Kubernetes集群内针对容器实现了服务发现和负载均衡。 如果服务要暴露到集群外部,从集群外部访问服务,需要借助一些集群外部提供的负载均衡策略。
先来看一下Kubernetes Service的类型:
Service提供的负载均衡功能,但在使用上有以下限制:
...文本描述如何在Kubernetes上运行一个Sonarqube和MySQL。
kubernetes集群构成如下,这里是单机的试验环境。
1kubectl get nodes
2NAME STATUS AGE
3cent0 Ready,master 1h
mysql-rc.yaml
1apiVersion: v1
2kind: ReplicationController
3metadata:
4 name: mysql
5spec:
6 replicas: 1
7 selector:
8 app: mysql
9 template:
10 metadata:
11 labels:
12 app: mysql
13 spec:
14 containers:
15 - name: mysql
16 image: mysql:5.7
17 ports:
18 - containerPort: 3306
19 env:
20 - name: MYSQL_ROOT_PASSWORD
21 value: "123456"
22 - name: MYSQL_DATABASE
23 value: sonardb
24 - name: MYSQL_USER
25 value: sonar
26 - name: MYSQL_PASSWORD
27 value: sonar
创建RC
...更新:直接参考Docker官方文档HTTP/HTTPS proxy即可
受限于网络环境,有的时候需要透过代理服务器pull docker镜像。
修改Docker的systemd文件,添加http代理配置。
修改/lib/systemd/system/docker.service
...伸缩性是指系统可以根据需求和成本调整自身处理能力的一种能力,构建可伸缩的服务有可能要求服务的处理能力在数天内扩大数倍,又需要在数天后将处理能力还原回去。
在Kubernetes集群中我们可以通过Replication Controller的scale机制完成服务的扩容或缩容,实现具有伸缩性的服务。
...在大规模分布式系统中有一个分布式配置管理中心的组件,将分布式应用所需的配置信息与程序进行分离,极大简化配置管理的工作。如360的QConf,百度的Disconf。 在大规模容器集群环境中,容器内应用程序的配置管理十分重要。Kubernetes提供了一种统一的管理方案,即ConfigMap。 Kubernetes使用ConfigMap实现容器应用的配置管理。
...