在CentOS上部署Kubernetes(k8s)集群,可以按照以下步骤进行:
Kubernetes需要Docker作为容器运行时环境。
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
为了提高性能和安全性,可以调整Docker的配置。
sudo tee /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
sudo systemctl restart docker
使用kubeadm工具来初始化和管理Kubernetes集群。
在主节点上执行以下命令:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
初始化完成后,会显示一些加入集群的命令,例如:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
将kubectl配置文件复制到用户目录下,并设置为默认上下文:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
在工作节点上执行主节点提供的加入命令,例如:
sudo kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
在主节点上执行以下命令,检查集群状态:
kubectl get nodes
使用kubectl命令或YAML文件部署应用。例如,部署一个简单的Nginx应用:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
保存为nginx-deployment.yaml,然后执行:
kubectl apply -f nginx-deployment.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
保存为nginx-service.yaml,然后执行:
kubectl apply -f nginx-service.yaml
等待Service的External IP地址分配完成,然后通过浏览器访问该IP地址即可看到Nginx应用。
如果需要删除集群,可以在主节点上执行以下命令:
sudo kubeadm reset
以上步骤涵盖了在CentOS上部署Kubernetes集群的基本流程。根据实际需求,可能还需要进行更多的配置和优化。