温馨提示×

centos k8s部署资源如何配置

小樊
54
2025-07-15 00:09:07
栏目: 智能运维

在CentOS上部署Kubernetes(k8s)集群并进行资源配置,可以按照以下步骤进行:

1. 系统准备

  • 更新系统
    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/config
    sudo swapoff -a && echo 'vm.swappiness 0' /etc/sysctl.conf
    
  • 配置静态网络: 编辑 /etc/sysconfig/network-scripts/ifcfg-ens33 文件,设置静态IP地址、网关和DNS。
    DEVICE=ens33
    BOOTPROTO=static
    IPADDR=192.168.1.100
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    DNS1=8.8.8.8
    DNS2=8.8.4.4
    ONBOOT=yes
    
    保存并退出编辑器,然后重启网络服务以使配置生效:
    sudo systemctl restart network
    

2. 安装Docker

  • 添加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-ce-cli containerd.io
    sudo systemctl start docker
    sudo systemctl enable docker
    

3. 安装Kubernetes组件

  • 添加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
    sudo systemctl enable kubelet && sudo systemctl start kubelet
    

4. 初始化Master节点

  • 初始化Master节点
    sudo kubeadm init --apiserver-advertise-address=192.168.1.106 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.18.0 --service-cidr=10.96.0.0/12 --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
    

5. 安装网络插件

  • 安装Flannel网络插件
    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    

6. 加入Worker节点

  • 获取Join命令: 初始化Master节点后,会输出一个Join命令,复制该命令并在Worker节点上执行。
    kubeadm token create --print-join-command
    
  • 在Worker节点上执行Join命令
    kubeadm join 192.168.1.106:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
    

7. 资源管理

  • 资源请求和限制: 在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"
    
  • 资源配额: 使用ResourceQuota对象限制命名空间中的资源使用。
    apiVersion: v1
    kind: ResourceQuota
    metadata:
      name: example-quota
    spec:
      hard:
        pods: 50
        requests.cpu: "1"
        requests.memory: "1Gi"
        limits.cpu: "2"
        limits.memory: "2Gi"
    
  • Horizontal Pod Autoscaler (HPA): 根据CPU利用率或其他自定义指标自动调整Pod的数量。
    apiVersion: autoscaling/v2beta2
    kind: HorizontalPodAutoscaler
    metadata:
      name: example-hpa
    spec:
      scaleTargetRef:
        apiVersion: apps/v1
        kind: Deployment
        name: example-deployment
      minReplicas: 1
      maxReplicas: 10
      metrics:
      - type: Resource
        resource:
          name: cpu
          target:
            type: Utilization
            averageUtilization: 50
    

8. 监控和日志

  • 监控工具:使用Prometheus和Grafana监控集群资源使用情况。
  • 日志管理:使用ELK Stack(Elasticsearch, Logstash, Kibana)进行日志收集和分析。

通过以上步骤,你可以在CentOS上成功部署和管理Kubernetes集群,并进行资源分配和管理。

0