目录
准备工作
准备4台虚拟机:1台主机(带有harbor镜像仓库),1台调度器,2台节点机(因为电脑配置不够所以我主机和调度器用一台)
一台兼容的 Linux 主机。Kubernetes 项目为基于 Debian 和 Red Hat 的 Linux 发行版以及一些不提供包管理器的发行版提供通用的指令
每台机器 2 GB 或更多的 RAM (如果少于这个数字将会影响你应用的运行内存)
2 CPU 核或更多
集群中的所有机器的网络彼此均能相互连接(公网和内网都可以)
节点之中不可以有重复的主机名、MAC 地址或 product_uuid。
开启机器上的某些端口。
禁用交换分区。为了保证 kubelet 正常工作,你 必须 禁用交换分区。
kubernetes设计架构
Kubernetes集群包含有节点代理kubelet和Master组件(APIs, scheduler, etc),一切都基于分布式的存储系统。
Kubernetes主要由以下几个核心组件组成:
etcd:保存了整个集群的状态
apiserver:提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制
controller manager:负责维护集群的状态,比如故障检测、自动扩展、滚动更新等
scheduler:负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上
kubelet:负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理
Container runtime:负责镜像管理以及Pod和容器的真正运行(CRI)
kube-proxy:负责为Service提供cluster内部的服务发现和负载均衡
Kubernetes部署
允许 iptables 检查桥接流量,每个节点同步完成
vim k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
sysctl --system //开启网桥流量
设置免密传输方便我们多次拷贝
ssh-keygen
ssh-copy-id 192.168.1.105
ssh-copy-id 192.168.1.111
把k8s.conf拷贝过去然后sysctl --system运行
关闭节点的selinux和iptables防火墙
setenforce 0 //关闭节点的selinux
iptables -F //关闭iptables防火墙
所有节点部署docker引擎