在CentOS上配置Kubernetes(k8s)資源分配涉及多個步驟,包括系統準備、安裝Kubernetes組件、配置網絡、以及設置資源限制等。以下是詳細的步驟指南:
更新系統:
sudo yum update -y
安裝必要的軟件包:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
關閉防火墻和SELinux:
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo sed -i 's/SELINUX.*/SELINUXdisabled/' /etc/selinux/configs
sudo swapoff -a && echo 'vm.swappiness 0' /etc/sysctl.conf
配置靜態網絡:編輯 /etc/sysconfig/network-scripts/ifcfg-ens33
文件,設置靜態IP地址、網關和DNS。
添加Docker的yum源:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安裝Docker CE:
sudo yum install -y docker-ce
啟動Docker:
sudo systemctl start docker
sudo systemctl enable docker
添加Kubernetes的yum源:創建 /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
安裝kubelet、kubeadm和kubectl:
sudo yum install -y kubelet kubeadm kubectl
啟動kubelet:
sudo systemctl enable kubelet && sudo systemctl start kubelet
sudo kubeadm init --pod-network-cidr 10.244.0.0/16
安裝Flannel網絡插件:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
驗證Docker安裝:
sudo docker run hello-world
驗證kubectl安裝:
kubectl get nodes
在Kubernetes中,資源分配主要通過定義Pod的資源請求和限制來實現。以下是一個示例Pod配置文件:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: nginx
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
Kubernetes支持動態資源分配,可以通過配置資源請求和限制來管理Pod的資源使用。例如,可以在Pod的配置文件中指定請求和限制GPU資源:
resources:
limits:
nvidia.com/gpu: 1 # 請求1個GPU
為了更細粒度地控制GPU資源的使用,可以在集群中配置GPU限制和調度策略。例如,可以通過Kubernetes的節點配置來限制每個節點可以使用的GPU數量。