int32bit's Blog

云资源安全合规基线自动化检查与配置

1 云资源安全合规基线需求和问题 云平台通过自服务接口提供了快速的资源供给方式,用户通过云平台console或者云管平台可以灵活按需快速构建云资源,甚至可以在几分钟构建自己的虚拟数据中心,资源的快速构建已不是什么难事,真正的难事在于如何有效治理好云资源,安全合规治理、标签治理、配置与安全基线检查等都不是什么容易的事。 如果前面有云管则可以挡一道,做一些配置限制、基线检查以及自动调整,但同...

浅聊Kubernetes的各种认证策略以及适用场景

1 Kubernetes认证背景 1.1 为什么Kubernetes没有用户以及用户组? Kubernetes的RBAC模型授权对象(Subject)是用户(User)或者用户组(Group),即使ServiceAccount也会当作为一个虚拟User。 但是很令人疑惑的是通过Kubernetes找不到真正的用户以及用户组信息,甚至连对应的User Resource以及Group Re...

分享几个Kubernetes实用插件和工具

前两周分享了两篇文章Kubernetes与IaaS资源融合实践、IPVS从入门到精通kube-proxy实现原理,这两篇都和网络有关,只要和网络有关就离不开要分析各种iptables、路由规则、策略路由,非常烧脑,如果不搞个真实环境演练下,真的很难搞清楚。 这篇文章走的是休闲路线,主要分享几个个人认为比较有用的工具,不用费脑,仅供参考 :) Kubectl插件 关于kubectl插件 ...

如何读取Kubernetes存储在etcd上的数据

etcd是一个分布式KV存储系统,在分布式系统中被广泛使用,Kubernetes就是使用了etcd存储持久化数据,包括创建的所有Pod、Deployment、Service等资源。 接下来我们看下如何读取Kubernetes存的数据。 首先如果使用kubeadm部署Kubernetes,默认会把CA根证书和签发的Server证书放在/etc/kubernetes/pki/etcd目录下,...

IPVS从入门到精通kube-proxy实现原理

1 kube-proxy介绍 1.1 为什么需要kube-proxy 我们知道容器的特点是快速创建、快速销毁,Kubernetes Pod和容器一样只具有临时的生命周期,一个Pod随时有可能被终止或者漂移,随着集群的状态变化而变化,一旦Pod变化,则该Pod提供的服务也就无法访问,如果直接访问Pod则无法实现服务的连续性和高可用性,因此显然不能使用Pod地址作为服务暴露端口。 解决这个...

Kubernetes与IaaS资源融合实践--以AWS为例

1 前言 我们知道Kubernetes是强大的声明式容器编排工具,而计算、存储、网络等功能均是通过以接口的形式暴露、以插件的形式实现,这种灵活开放的设计理念使Kubernetes非常容易集成外部工具扩展和强化功能。而IaaS云平台提供的核心功能就是计算、存储和网络,这意味着Kubernetes与IaaS云平台并不是独立割裂的,而是天然非常适合结合在一起,功能和职责互补,二者联合起来既能充分...

混合云编排工具Terraform简介

1 Terraform背景 1.1 混合云编排 目前各大公有云以及云管理平台均提供了非常友好的交互界面,用户可以像超市买东西一样自助采购云资源。然而,当用户需要批量快速打包采购大量不同类型的云资源时,云管页面过多的交互反而降低了资源采购效率。 据统计,一个熟悉AWS页面操作的工程师,在AWS上初始化一个VPC包括创建VPC、子网、internet网关、NAT网关、路由等工作至少需要花费...

浅聊几种主流Docker网络的实现原理

一、容器网络简介 容器网络主要解决两大核心问题:一是容器的IP地址分配,二是容器之间的相互通信。本文重在研究第二个问题并且主要研究容器的跨主机通信问题。 实现容器跨主机通信的最简单方式就是直接使用host网络,这时由于容器IP就是宿主机的IP,复用宿主机的网络协议栈以及underlay网络,原来的主机能通信,容器也就自然能通信,然而带来的最直接问题就是端口冲突问题。 因此通常容器会配置...

OpenStack容器服务Zun初探与原理分析

1 Zun服务简介 Zun是OpenStack的容器服务(Containers as Service),类似于AWS的ECS服务,但实现原理不太一样,ECS是把容器启动在EC2虚拟机实例上,而Zun会把容器直接运行在compute节点上。 和OpenStack另一个容器相关的Magnum项目不一样的是:Magnum提供的是容器编排服务,能够提供弹性Kubernetes、Swarm、Mes...

如何探测虚拟化环境是物理机、虚拟机还是容器?

目前裸机(物理机)、虚拟机、容器是云计算提供计算服务的三种主流形式。最近有人问,如何判断一个虚拟shell环境到底是物理机、虚拟机还是容器? 更进一步,如果是物理机,这个物理机厂商是什么,虚拟机到底是KVM还是XEN,容器是Docker还是rkt、lxc等? 更进一步,如果是虚拟机,是否可以判断这个虚拟机是运行在AWS还是阿里或者OpenStack,是否能够获取虚拟机的UUID、inst...