在CentOS上部署Kubernetes(k8s)集群并进行资源配置,可以按照以下步骤进行:
sudo yum update -y
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
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
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
/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
sudo yum install -y kubelet kubeadm kubectl
sudo systemctl enable kubelet && sudo systemctl start kubelet
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
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubeadm token create --print-join-command
kubeadm join 192.168.1.106:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
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"
apiVersion: v1
kind: ResourceQuota
metadata:
  name: example-quota
spec:
  hard:
    pods: 50
    requests.cpu: "1"
    requests.memory: "1Gi"
    limits.cpu: "2"
    limits.memory: "2Gi"
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
通过以上步骤,你可以在CentOS上成功部署和管理Kubernetes集群,并进行资源分配和管理。