k8s v1.20二进制部署

目录

一、环境准备

二、操作系统初始化配置

2.1.关闭防火墙

​编辑

2.2.关闭selinux

2.3.关闭swap

2.4.根据规划设置主机名

2.5在master添加hosts

2.6.调整内核参数

2.7.时间同步

三、部署 docker引擎

3.1.所有 node 节点部署docker引擎

四、部署 etcd 集群

4.1.etcd 作为服务发现系统,具有的特点

4.2.etcd默认端口

4.3.准备签发证书环境

4.4.在 master01 节点上操作

4.4.1.准备cfssl证书生成工具

4.4.2.生成Etcd证书

4.4.3.创建用于存放 etcd 配置文件,命令文件,证书的目录

4.4.4.把etcd相关证书文件、命令文件和服务管理文件全部拷贝到另外两个etcd集群节点

4.4.5.在 node01 节点上操作

4.4.6.在 node02 节点上操作

4.4.7.检查etcd群集状态

4.4.8.查看etcd集群成员列表

五、部署 Master 组件

5.1.在 master01 节点上操作

5.2.创建kubernetes工作目录

5.3.二进制文件、token、证书都准备好后,开启 apiserver 服务

5.4.启动 scheduler 服务

5.5.生成kubectl连接集群的kubeconfig文件

5.6.通过kubectl工具查看当前集群组件状态

六、部署 Worker Node 组件

6.2.把 kubelet、kube-proxy 拷贝到 node 节点

6.3.启动 kubelet 服务

6.4.在 master01 节点上操作,通过 CSR 请求

6.5.加载 ip_vs 模块


一、环境准备

k8s集群master1 192.168.190.101 kube-apiserver kube-controller-manager kube-scheduler etcd
k8s集群node1 192.168.190.102 kubelet kube-proxy docker 
k8s集群node2 192.168.190.103 kubelet kube-proxy docker 
etcd集群节点1 192.168.190.101 etcd
etcd集群节点2 192.168.190.102 etcd
etcd集群节点3 192.168.190.103 etcd

 负载均衡nginx+keepalive01(master):192.168.190.104
负载均衡nginx+keepalive02(backup):192.168.190.105

VIP 192.168.190.100

二、操作系统初始化配置

2.1.关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X

2.2.关闭selinux

setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config

2.3.关闭swap

swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab 

2.4.根据规划设置主机名

hostnamectl set-hostname master1
hostnamectl set-hostname node1
hostnamectl set-hostname node2

三台主机依次更改

2.5在master添加hosts

cat >> /etc/hosts << EOF
192.168.190.101 master1
192.168.190.102 node1
192.168.190.103 node2
EOF

2.6.调整内核参数

cat > /etc/sysctl.d/k8s.conf << EOF
#开启网桥模式,可将网桥的流量传递给iptables链
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
#关闭ipv6协议
net.ipv6.conf.all.disable_ipv6=1
net.ipv4.ip_forward=1
EOF

sysctl --system

2.7.时间同步

yum install ntpdate -y
ntpdate time.windows.com

三台主机一起时间同步

三、部署 docker引擎

3.1.所有 node 节点部署docker引擎

yum install -y yum-utils device-mapper-persistent-data lvm2 
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
yum install -y docker-ce docker-ce-cli containerd.io

systemctl start docker.service
systemctl enable docker.service 

四、部署 etcd 集群

etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,etcd是go语言编写的。

4.1.etcd 作为服务发现系统,具有的特点

简单:安装配置简单,而且提供了HTTP API进行交互,使用也很简单
安全:支持SSL证书验证
快速:单实例支持每秒2k+读操作
可靠:采用raft算法,实现分布式系统数据的可用性和一致性

4.2.etcd默认端口

etcd 目前默认使用2379端口提供HTTP API服务, 2380端口和peer通信(这两个端口已经被IANA(互联网数字分配机构)官方预留给etcd)。 即etcd默认使用2379端口对外为客户端提供通讯,使用端口2380来进行服务器间内部通讯。
etcd 在生产环境中一般推荐集群方式部署。由于etcd 的leader选举机制,要求至少为3台或以上的奇数台。

4.3.准备签发证书环境

CFSSL 是 CloudFlare 公司开源的一款 PKI/TLS 工具。 CFSSL 包含一个命令行工具和一个用于签名、验证和捆绑 TLS 证书的 HTTP API 服务。使用Go语言编写。
CFSSL 使用配置文件生成证书,因此自签之前,需要生成它识别的 json 格式的配置文件,CFSSL 提供了方便的命令行生成配置文件。
CFSSL 用来为 etcd 提供 TLS 证书,它支持签三种类型的证书:

1、client 证书,服务端连接客户端时携带的证书,用于客户端验证服务端身份,如 kube-apiserver 访问 etcd;
2、server 证书,客户端连接服务端时携带的证书,用于服务端验证客户端身份,如 etcd 对外提供服务;
3、peer 证书,相互之间连接时使用的证书,如 etcd 节点之间进行验证和通信。
这里全部都使用同一套证书认证。

4.4.在 master01 节点上操作

4.4.1.准备cfssl证书生成工具

将三个cfssl证书放入 /usr/local/bin/下

赋权   chmod +x /usr/local/bin/cfssl*

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值