在CentOS上部署和管理Kubernetes(k8s)集群涉及多個步驟,包括系統準備、安裝Kubernetes組件、配置資源管理等。以下是一個詳細的指南:
硬件和軟件要求:
配置主機名和網絡:
hostnamectl set-hostname <hostname>
vim /etc/hosts
關閉Swap分區:
swapoff -a
# /dev/mapper/centos-swap swap swap defaults 0 0
sed -i 's/SELINUXenforcing/SELINUXdisabled/' /etc/sysconfig/selinux
reboot
systemctl disable firewalld
systemctl stop firewalld
modprobe br_netfilter
echo "modprobe br_netfilter" >> /etc/profile
tee -a /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables 1
net.bridge.bridge-nf-call-iptables 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf
timedatectl set-local-rtc 0
timedatectl set-timezone Asia/Shanghai
hwclock --systohc
配置Kubernetes的Yum源:
cat /etc/yum.repos
初始化Master節點:
kubeadm init
加入Worker節點:
kubeadm join <master-ip>:<master-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
配置資源請求和限制:
在Pod的配置文件中指定請求和限制資源。例如:
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
驗證資源劃分:
查看當前集群的資源使用情況:
kubectl get nodes
kubectl describe node <node-name>
動態資源分配:
Kubernetes允許動態管理GPU資源。具體步驟包括安裝NVIDIA Device Plugin、配置GPU資源在Pod中使用的配置文件等。
創建Nginx配置文件(nginx.yaml):
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
部署應用:
kubectl apply -f nginx.yaml
驗證部署:
kubectl get pods
通過以上步驟,你可以在CentOS上成功部署和管理Kubernetes集群,并進行資源管理。