Kubernetes安装脚本在CentOS上如何用
在CentOS上安装Kubernetes集群,你可以使用Kubeadm工具。以下是一个基本的步骤指南,用于在单节点或多节点CentOS集群上安装Kubernetes。
前提条件
- 一台CentOS 7或更高版本的服务器(控制平面节点)
- 至少两台CentOS 7或更高版本的服务器(工作节点)
- 所有节点都已经配置了正确的DNS设置,并且可以互相解析主机名
- 所有节点都已经关闭SELinux(或者配置为允许Kubernetes组件)
- 所有节点都已经配置了防火墙规则,允许Kubernetes通信
安装步骤
1. 设置主机名和hosts文件
在每个节点上设置一个唯一的主机名,并在/etc/hosts
文件中添加所有节点的IP地址和主机名。
# 在每个节点上执行
echo "your-node-name" > /etc/hostname
hostnamectl set-hostname your-node-name
编辑/etc/hosts
文件,添加如下内容:
192.168.1.1 node1.example.com node1
192.168.1.2 node2.example.com node2
# ... 其他节点
2. 关闭Swap
Kubernetes要求关闭swap内存,因为Kubernetes的内存管理不支持swap。
swapoff -a
为了确保重启后swap仍然关闭,编辑/etc/fstab
文件并注释掉swap条目。
3. 安装Docker或其他容器运行时
Kubernetes使用容器运行时来运行Pod。你可以选择Docker、containerd或CRI-O。以下是安装Docker的示例:
yum install -y docker
systemctl enable docker
systemctl start docker
确保Docker不会在启动时自动重启容器:
setenforce 0
sed -i 's/^\(exec-start\)/#\1/' /lib/systemd/system/docker.service
systemctl daemon-reload
systemctl restart docker
4. 安装Kubeadm, kubelet和kubectl
在所有节点上安装Kubeadm, kubelet和kubectl:
cat <<EOF >/etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
EOF
yum install -y kubelet kubeadm kubectl --disable-gpg-check
systemctl enable kubelet
systemctl start kubelet
5. 初始化控制平面节点
在控制平面节点上运行以下命令来初始化Kubernetes集群:
kubeadm init --pod-network-cidr=10.244.0.0/16
这个命令会输出一些信息,包括如何将工作节点加入到集群中。
6. 配置kubectl
运行kubeadm init
命令后,你需要配置kubectl以便你可以使用它来管理集群:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
7. 安装网络插件
Kubernetes需要一个网络插件来支持Pod之间的网络通信。你可以选择Flannel、Calico、Weave等。以下是安装Flannel的示例:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
8. 将工作节点加入到集群
在工作节点上运行控制平面节点初始化时输出的命令来加入集群。这个命令通常看起来像这样:
kubeadm join 192.168.1.1:6443 --token --discovery-token-ca-cert-hash sha256:<hash>
确保使用正确的IP地址、token和hash。
9. 验证集群状态
在控制平面节点上运行以下命令来验证所有节点是否已经成功加入集群:
kubectl get nodes
如果所有节点都显示为Ready
状态,那么你的Kubernetes集群就已经成功安装并运行了。
请注意,这些步骤提供了一个基本的Kubernetes安装过程。根据你的具体需求和环境,可能需要进行额外的配置和调整。