Kubernetes—二进制部署k8s集群之搭建单机matser和etcd集群(1)

目录

组件部署

一、操作系统初始化配置 

二、升级Liunx内核

三、部署docker引擎 

四、部署etcd集群

1.在 master01 节点上操作

2.在 node节点上操作 

检查etcd群集状态

增删查键

备份还原 etcd(拓展)

五.部署 Master 组件

1.上传解压

2.创建目录并修改脚本 

3.上传并解压

4.创建目录

5.复制

6.复制

7.创建文件

8.开启 apiserver 服务并检查进程是否成功

 9.启动 scheduler 服务

10.启动 controller-manager 服务

11.生成文件并查看

六.部署 Worker Node 组件

1.在node01 节点上操作

2.在 master01 节点上操作

拷贝到node 节点上

上传文件并授权

3.在node01 节点上操作

 4.在master01 节点上操作

5.在node02 节点上操作

6.master01 节点查看

7.node01 节点操作

8.node02 节点操作

9.master01 节点查看验证


组件部署

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(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值