如何用Docker和Kubernetes Operator自动化部署CentOS上的Zookeeper集群?
摘要:环境说明 主机 IP主机名节点角色数据目录Kubernetes 节点标签 192.168.10.100 zk1 Master optzookeeperdata zk-cluster=true 192.168.10.101 zk2 Wo
环境说明
主机 IP主机名节点角色数据目录Kubernetes 节点标签
192.168.10.100
zk1
Master
/opt/zookeeper/data
zk-cluster=true
192.168.10.101
zk2
Worker
/opt/zookeeper/data
zk-cluster=true
192.168.10.102
zk3
Worker
/opt/zookeeper/data
zk-cluster=true
192.168.10.103
zk4
Worker
/opt/zookeeper/data
zk-cluster=true
192.168.10.104
zk5
Worker
/opt/zookeeper/data
zk-cluster=true
一、基础环境部署(所有节点)
1. 系统配置
bash
# 设置主机名
sudo hostnamectl set-hostname zk1 # 分别在每台机器执行对应主机名
# 编辑hosts文件
sudo tee -a /etc/hosts <<EOF
192.168.10.100 zk1
192.168.10.101 zk2
192.168.10.102 zk3
192.168.10.103 zk4
192.168.10.104 zk5
EOF
# 关闭SELinux
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 优化内核参数
sudo tee -a /etc/sysctl.conf <<EOF
net.core.somaxconn=65535
net.ipv4.tcp_max_syn_backlog=65535
vm.swappiness=1
EOF
sudo sysctl -p
2. Docker 安装
bash
# 安装依赖
sudo dnf install -y yum-utils device-mapper-persistent-data lvm2
# 添加Docker仓库
sudo yum-config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
# 安装Docker
sudo dnf install -y docker-ce docker-ce-cli containerd.io
# 配置Docker
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
EOF
# 启动Docker
sudo systemctl start docker
sudo systemctl enable docker
3. Kubernetes 组件安装
bash
# 禁用Swap
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
# 安装kubeadm/kubelet/kubectl
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
sudo dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
sudo systemctl enable --now kubelet
# 初始化Master节点 (仅在zk1执行)
sudo kubeadm i
