在CentOS上管理Kubernetes(k8s)集群涉及多个方面,包括安装、配置、监控、维护和安全性。以下是一个详细的指南,帮助你在CentOS系统上成功部署和管理Kubernetes集群。
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
hostnamectl set-hostname k8s-master
yum install ntpdate -y
ntpdate ntp.aliyun.com
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
docker --version
cat <<EOF > /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
EOF
yum install -y kubelet kubeadm kubectl --disable-gpg-check
sudo systemctl enable kubelet
sudo systemctl start kubelet
kubectl version
在Master节点上执行:
kubeadm init --apiserver-advertise-address <master-ip> --image-repository registry.aliyuncs.com/google_containers --kubernetes-version <version> --service-cidr <service-cidr> --pod-network-cidr <pod-network-cidr>
初始化完成后,Master节点会输出一个Join命令,用于Node节点加入集群。
在所有Worker节点上执行Master节点输出的Join命令。
在Master节点上执行:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
kubectl get nodes
kubectl get pods --all-namespaces
kubectl apply -f https://raw.githubusercontent.com/prometheus-community/helm-charts/releases/latest/download/prometheus-chart.tgz
helm install prometheus stable/prometheus --set global.storage.size=10Gi
kubectl apply -f https://raw.githubusercontent.com/grafana/grafana/master/deploy/recommended/grafana.yaml
scrape_configs:
- job_name: 'kubernetes-nodes'
kubernetes_sd_configs:
- role: node
relabel_configs:
- source_labels: [__meta_kubernetes_node_label_app]
action: keep
regex: kube-state-metrics
action: replace
target_label: __address__
replacement: :9090
- source_labels: [__meta_kubernetes_node_annotation_prometheus_io_scrape]
action: keep
regex: "true"
source_labels: [__meta_kubernetes_node_annotation_prometheus_io_port]
action: replace
target_label: __address__
replacement: :9090
重启Prometheus:kubectl rollout restart deployment prometheus
部署Kubernetes Dashboard:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
访问Kubernetes Dashboard: 配置好防火墙和Service后,可以通过以下URL访问Kubernetes Dashboard:
https://<your-master-node-ip>:30000
通过上述步骤和策略,可以有效地在CentOS上管理Kubernetes集群,确保其稳定性、安全性和高效性。