没有合适的资源?快使用搜索试试~ 我知道了~

《二进制方式搭建一个完整 K8s 集群》
一、前置准备
1.1 生产环境可部署 Kubernetes 集群的两种方式
目前生产部署 Kubernetes 集群主要有两种方式:
kubeadm
Kubeadm 是一个 K8s 部署工具,提供 kubeadm init 和 kubeadm join,用于快速部署 Kubernetes
集群。
官方地址:https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/
二进制包
从 github 下载发行版的二进制包,手动部署每个组件,组成 Kubernetes 集群。
Kubeadm 降低部署门槛,但屏蔽了很多细节,遇到问题很难排查。如果想更容易可控,推荐使
用二进制包部署 Kubernetes 集群,虽然手动部署麻烦点,期间可以学习很多工作原理,也利
于后期维护。
1.2 安装要求
在开始之前,部署 Kubernetes 集群机器需要满足以下几个条件:
一台或多台机器,操作系统 CentOS7.x-86_x64
硬件配置:2GB 或更多 RAM,2 个 CPU 或更多 CPU,硬盘 30GB 或更多
集群中所有机器之间网络互通
可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点
禁止 swap 分区

1.3 准备环境
软件环境:
软件
版本
操作系统
CentOS7.8_x64 (mini)
Docker
19-ce
Kubernetes
1.18
服务器整体规划:
角色
IP
组件
k8s-master1
192.168.31.71
kube-apiserver,kube-controller-manage
r,kube-scheduler,etcd
k8s-master2
192.168.31.74
kube-apiserver,kube-controller-manage
r,kube-scheduler
k8s-node1
192.168.31.72
kubelet,kube-proxy,docker etcd
k8s-node2
192.168.31.73
kubelet,kube-proxy,docker,etcd
Load Balancer(M
aster)
192.168.31.81 ,192.16
8.31.88 (VIP)
Nginx L4
Load Balancer(B
ackup)
192.168.31. 82
Nginx L4
须知:考虑到有些朋友电脑配置较低,这么多虚拟机跑不动,所以这一套高可用集群分两部分
实施,先部署一套单 Master 架构(192.168.31.71/72/73),再扩容为多 Master 架构(上述
规划),顺便熟悉下 Master 扩容流程。
单 Master 架构图:
单 Master 服务器规划:
角色
IP
组件
k8s-maste
r
192.168.31.
71
kube-apiserver,kube-controller-manager,kube-scheduler,
etcd
k8s-node1
192.168.31.
72
kubelet,kube-proxy,docker etcd
k8s-node2
192.168.31.
73
kubelet,kube-proxy,docker,etcd
1.4 操作系统初始化配置

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭 selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
setenforce 0 # 临时
# 关闭 swap
swapoff -a # 临时
sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久
# 根据规划设置主机名
hostnamectl set-hostname <hostname>
# 在 master 添加 hosts
cat >> /etc/hosts << EOF
192.168.31.71 k8s-master
192.168.31.72 k8s-node1
192.168.31.73 k8s-node2
EOF
# 将桥接的 IPv4 流量传递到 iptables 的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system # 生效
# 时间同步
yum install ntpdate -y
ntpdate time.windows.com
二、部署 Etcd 集群
Etcd 是一个分布式键值存储系统,Kubernetes 使用 Etcd 进行数据存储,所以先准备一个 Etcd
数据库,为解决 Etcd 单点故障,应采用集群方式部署,这里使用 3 台组建集群,可容忍 1 台
机器故障,当然,你也可以使用 5 台组建集群,可容忍 2 台机器故障。
节点名称
IP
etcd-1
192.168.31.71
etcd-2
192.168.31.72
etcd-3
192.168.31.73
注:为了节省机器,这里与 K8s 节点机器复用。也可以独立于 k8s 集群之外部署,只要 apiserver
能连接到就行。

2.1 准备 cfssl 证书生成工具
cfssl 是一个开源的证书管理工具,使用 json 文件生成证书,相比 openssl 更方便使用。
找任意一台服务器操作,这里用 Master 节点。
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
chmod +x cfssl_linux-amd64 cfssljson_linux-amd64 cfssl-certinfo_linux-amd64
mv cfssl_linux-amd64 /usr/local/bin/cfssl
mv cfssljson_linux-amd64 /usr/local/bin/cfssljson
mv cfssl-certinfo_linux-amd64 /usr/bin/cfssl-certinfo
2.2 生成 Etcd 证书
1. 自签证书颁发机构(CA)
创建工作目录:
mkdir -p ~/TLS/{etcd,k8s}
cd TLS/etcd
自签 CA:
cat > ca-config.json << EOF
{
"signing": {
"default": {
"expiry": "87600h"
},
"profiles": {
"www": {
"expiry": "87600h",
"usages": [
"signing",
"key encipherment",
"server auth",
"client auth"
]
}
}
}
}
EOF
cat > ca-csr.json << EOF
{
"CN": "etcd CA",
"key": {

"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "Beijing",
"ST": "Beijing"
}
]
}
EOF
生成证书:
cfssl gencert -initca ca-csr.json | cfssljson -bare ca -
ls *pem
ca-key.pem ca.pem
2. 使用自签 CA 签发 Etcd HTTPS 证书
创建证书申请文件:
cat > server-csr.json << EOF
{
"CN": "etcd",
"hosts": [
"192.168.31.71",
"192.168.31.72",
"192.168.31.73"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "BeiJing",
"ST": "BeiJing"
}
]
}
EOF
注:上述文件 hosts 字段中 IP 为所有 etcd 节点的集群内部通信 IP,一个都不能少!为了方便
后期扩容可以多写几个预留的 IP。
生成证书:
剩余33页未读,继续阅读
资源推荐
资源评论
2020-07-11 上传
123 浏览量
143 浏览量
2022-02-17 上传
163 浏览量
193 浏览量
198 浏览量
192 浏览量
2021-06-22 上传

103 浏览量
2020-08-27 上传
资源评论


拖拉机s
- 粉丝: 60
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 构建并激发强大的项目管理的机制能力.doc
- 网络技术与应用选修课市公开课一等奖百校联赛优质课金奖名师赛课获奖课件.ppt
- 应届生电气自动化求职简历模板.docx
- 基于单片机汽车信号灯控制系统的设计.doc
- 淮阴区教育城域网项目综合布线分项施工规范.doc
- 弱电系统综合布线施工规范.doc
- 软件设计公司年中工作总结.pptx
- 网络企业管理的三大基本职能.ppt
- 网络销售个人工作总结600字.docx
- 基于单片机的多路抢答器设计.doc
- 机械行业网络营销分析.doc
- 内蒙古电力勘测设计院电力GIS系统设计技术方案.doc
- 平安银行软件开发笔试题.doc
- 基于单片机的温度测量系统设计(DOC).doc
- 项目管理与企业智商[最终版].pdf
- 通信线路工程预算定额的补充定额-.doc
安全验证
文档复制为VIP权益,开通VIP直接复制
