在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集群,確保其穩定性、安全性和高效性。