在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集群,并进行资源分配和管理。