点击蓝字 关注我们
前言
之前实习的时候,旁边的小伙伴都是搞云原生安全的研究,一直想学,之前看了几个k8s的攻击面,今天从概念和安装开始系统的学一下。
概念
K8s集群架构组件
Master (主控节点) 和 node(工作节点)
(1)master组件
API server:集群统一入口,以restful方式,交给etcd存储
scheduler:节点调度,选择node节点应用部署
controller-manager: 处理集群中常规后台任务,一个资源对应一个控制器
etcd:存储系统,用于保存集群相关的数据
(2)node组件
kubeelet
master排到node节点代表,管理本机容器
kube-proxy
提供网络代理,负载均衡等操作
1.Pod :最小部署单元,一组容器的集合,容器共享网络,生命周期是短暂的
2.Controller:确保预期的pod副本数量,无状态应用部署,有状态应用部署(依赖存储,ip唯一),确保所有的node运行同一个pod,一次性任务和定时任务
3.Service:定义一组pod的访问规则
平台规划:
单master集群
多master集群
配置要求
一台或多台机器,
硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多
集群中所有机器之间网络互通
可以访问外网,需要拉取镜像
禁止swap分区
安装步骤
下载centos镜像,这里前期的linux配置就不赘述了,一些主机联网,虚拟机之间互通的,这里就不提了。
关闭防火墙:
$ systemctl stop firewalld
关闭 selinux:
$ sed -i 's/enforcing/disabled/' /etc/selinux/config
关闭 swap:
$ swapoff -a #
设置主机名,设置hosts
将桥接的 IPv4 流量传递到 iptables 的链:
时间同步
所有节点安装 Docker/kubeadm/kubelet
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O
/etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce-18.06.1.ce-3.el7
systemctl enable docker && systemctl start docker
docker --version
添加阿里云 YUM 软件源
添加 yum 源
安装 kubeadm,kubelet 和 kubectl
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
systemctl enable kubelet
部署 Kubernetes Master,这里版本要一致
kubeadm init
--apiserver-advertise-address=192.168.136.206
--image-repository registry.aliyuncs.com/google_containers
--kubernetes-version v1.18.0
--service-cidr=10.96.0.0/12
--pod-network-cidr=10.244.0.0/16
使用 kubectl 工具
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
安装 Pod 网络插件(CNI),这里将yaml放到本地
kubectl apply –f kubbe-flannel.yaml
加入 Kubernetes Node
kubeadm join 192.168.31.61:6443 --token xxxxx
--discovery-token-ca-cert-hash
sha256:
测试集群,如图,访问任意一台机器均可
原文始发于微信公众号(Th0r安全):云原生安全入门-K8s概念与安装
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论