目录
组件部署
| mater节点 | ||
| mater01 | 192.168.80.100 | kube-apiserver kube-controller-manager kube-scheduler etcd |
| mater02 | 192.168.80.101 | |
| node节点 | ||
| node01 | 192.168.80.102 | kubelet kube-proxy docker (容器引擎) |
| node02 | 192.168.80.103 | kubelet kube-proxy docker (容器引擎) |
| etcd cluster集群 | ||
| etcd节点1 | 192.168.80.100(mater01) | etcd |
| etcd节点2 | 192.168.80.102 (node01) |
etcd |
| etcd节点3 | 192.168.80.103 (node02) |
etcd |
一、操作系统初始化配置
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
#关闭selinux
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
#关闭swap
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab
#根据规划设置主机名
hostnamectl set-hostname master01
hostnamectl set-hostname master02
hostnamectl set-hostname node01
hostnamectl set-hostname node02
#在master添加hosts
cat >> /etc/hosts << EOF
192.168.80.100 master01
192.168.80.101 master02
192.168.80.102 node01
192.168.80.103 node02
EOF

#调整内核参数
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

#时间同步
#时间同步 所有服务器操作
vim /etc/chrony.conf
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server ntp1.aliyun.com iburst
systemctl restart chronyd.service
chronyc -a makestep

二、升级Liunx内核
vim /etc/yum.repos.d/elrepo.repo 所有服务器操作
[elrepo]
name=elrepo
baseurl=https://mirrors.aliyun.com/elrepo/archive/kernel/el7/x86_64
gpgcheck=0
enabled=1
cd /etc/yum.repos.d/
mv local.repo repo.bak/
导入阿里云在线源


yum clean all 所有服务器操作
yum install -y kernel-lt kernel-lt-devel 集群升级内核
#查看内核序号
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
#设置默认启动内核
grub2-set-default 0
#重启操作系统
reboot
#查看生效版本
hostnamectl


三、部署docker引擎
所有 node 节点部署docker引擎
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

cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://6ijb8ubo.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "500m", "max-file": "3"
}
}
EOF
systemctl enable --now docker
docker info


四、部署etcd集群
etcd是一个分布式键值存储系统,用于在分布式系统中保存配置信息、元数据以及关键的共享状
态。它是一个开源项目,最初由CoreOS开发并维护,现在由CNCF托管。etcd的设计目标是提供
可靠的分布式存储,以支持分布式系统的一致性和高可用性
关键特性
- 分布式存储:etcd的数据存储是分布式的,可以跨多个节点进行分布,确保高可用性和可扩展性
- 强致性:etcd提供强一致性的保证,确保在集群中的所有节点都能看到相同的数据视图
- 轻量级:etcd采用轻量级的Raft一致性算法,以确保集群中的节点之间达成一致,同时保持相对较低的性能开销
- API支持:etcd提供简单而强大的HTTP+JSON API,使得开发人员可以轻松地与其进行交互,并集成到各种应用和工具中
- Watch机制:etcd支持Watch机制,允许客户端监视特定键的变化,并在数据发生变更时得到通知
- 安全性:etcd支持SSL/TLS加密,以保障数据在传输过程中的安全性,并提供基于角色的访问控制
应用场景
- 配置管理: etcd常用于存储应用程序和系统的配置信息,允许动态地更新配置而无需重启应用
- 服务发现: etcd可以用作服务发现的后端存储,帮助服务在动态环境中找到彼此
- 分布式锁: 通过etcd的分布式锁机制,可以实现分布式系统中的协同工作和资源同步
- 集群协调: etcd在构建分布式系统中,作为集群协调的关键组件,确保系统的一致性和稳定性
总体而言,etcd在云原生应用和分布式系统中发挥着重要作用,提供了可靠的分布式存储和协调服
务,为应用程序提供一致性、可靠性和高可用性的基础设施支持
etcd 目前默认使用2379端口提供HTTP API服务, 2380端口和peer通信(这两个端口已经被
IANA(


最低0.47元/天 解锁文章
1455

被折叠的 条评论
为什么被折叠?



