centos

centos k8s部署脚本怎么写

小樊
38
2025-03-25 23:11:32
栏目: 智能运维

在CentOS上部署Kubernetes(k8s)集群通常涉及多个步骤,包括设置网络、安装必要的软件包、配置kubelet、kube-proxy和API服务器等。以下是一个基本的脚本示例,用于在CentOS 7上部署一个单节点的Kubernetes集群。

请注意,这个脚本是为教育目的而设计的,生产环境中的部署会更加复杂,需要考虑安全性、高可用性、网络策略等因素。

#!/bin/bash

# 禁用Swap
swapoff -a

# 设置内核参数
cat <<EOF >/etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system

# 安装Docker
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io

# 启动Docker并设置开机自启
systemctl start docker
systemctl enable docker

# 安装kubectl
curl -LO "https://dl.k8s.io/release/$(curl -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x ./kubectl
mv ./kubectl /usr/local/bin/kubectl

# 安装kubelet和kubeadm
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
systemctl start kubelet

# 初始化Kubernetes集群
kubeadm init --pod-network-cidr=10.244.0.0/16

# 设置kubectl配置以使用集群
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

# 安装网络插件,这里以Flannel为例
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

# 检查Pod网络是否正常运行
kubectl get pods --all-namespaces | grep flannel

echo "Kubernetes cluster has been initialized successfully!"

在运行此脚本之前,请确保您的CentOS系统已经更新到最新版本,并且您有root权限或者可以使用sudo来执行命令。

这个脚本会执行以下操作:

  1. 禁用Swap,因为Kubernetes不建议使用Swap。
  2. 设置内核参数以允许Kubernetes使用桥接网络。
  3. 安装Docker,这是Kubernetes节点上运行的容器运行时。
  4. 安装kubectl,这是Kubernetes的命令行工具。
  5. 安装kubelet和kubeadm,这些是Kubernetes集群的核心组件。
  6. 使用kubeadm初始化Kubernetes集群。
  7. 设置kubectl配置,以便您可以使用kubectl命令与集群交互。
  8. 安装Flannel网络插件,以便Pod之间可以进行通信。
  9. 检查Flannel Pod是否正常运行,以确保网络设置正确。

请记住,这个脚本仅适用于单节点集群的初始化。在生产环境中,您可能需要部署多个控制平面节点和工作节点,并且需要考虑更多的配置选项和安全措施。

0
看了该问题的人还看了