Prometheus08-k8s deployment prometheus
1. The basic environment has k8s cluster.
[root@kubemaster01 prometheus] # kubectl get node NAME STATUS ROLES AGE VERSION192.168.249.51 Ready 63d v1.12.3192.168.249.52 Ready 63d v1.12.3192.168.249.53 Ready 63d v1.12.3You have new mail in / var/spool/mail/root [root@kubemaster01 prometheus] # kubectl get csNAME STATUS MESSAGE ERRORscheduler Healthy ok controller-manager Healthy ok etcd-1 Healthy {"health": "true"} etcd-2 Healthy {"health": "true"} etcd-0 Healthy {"health": "true"} [root@kubemaster01 prometheus] #
two。 Download prometheus yaml
For file in prometheus-configmap.yaml prometheus-rbac.yaml prometheus-service.yaml prometheus-statefulset.yaml; do wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/prometheus/$file;done
3. Set up dynamic storageclass
3.1.kubectl apply-f rbac.yml
Kind: ServiceAccountapiVersion: v1metadata: name: nfs-client-provisioner---kind: ClusterRoleapiVersion: rbac.authorization.k8s.io/v1metadata: name:-apiGroups: [""] resources: ["persistentvolumes"] verbs: ["get", "list", "watch", "create", "delete"]-apiGroups: [""] resources: ["persistentvolumeclaims"] verbs: ["get", "list", "watch" "update"]-apiGroups: ["storage.k8s.io"] resources: ["storageclasses"] verbs: ["get", "list", "watch"]-apiGroups: [""] resources: ["events"] verbs: ["create", "update" "patch"]-kind: ClusterRoleBindingapiVersion: rbac.authorization.k8s.io/v1metadata: name: run-nfs-client-provisionersubjects:-kind: ServiceAccount name: nfs-client-provisioner namespace: defaultroleRef: kind: ClusterRole name: nfs-client-provisioner-runner apiGroup: rbac.authorization.k8s.io---kind: RoleapiVersion: rbac.authorization.k8s.io/v1metadata: name: leader-locking-nfs-client-provisionerrules:-apiGroups: ["] resources: [" endpoints "] verbs: [" get " "list", "watch", "create", "update", "patch"]-kind: RoleBindingapiVersion: rbac.authorization.k8s.io/v1metadata: name: leader-locking-nfs-client-provisionersubjects:-kind: ServiceAccount name: nfs-client-provisioner namespace: defaultroleRef: kind: Role name: leader-locking-nfs-client-provisioner apiGroup: rbac.authorization.k8s.io
3.2Setting storage deployment.yaml
ApiVersion: v1kind: ServiceAccountmetadata: name: nfs-client-provisioner---kind: DeploymentapiVersion: apps/v1metadata: name: nfs-client-provisionerspec: 1 selector: matchLabels: app: nfs-client-provisioner strategy: type: Recreate template: metadata: labels: app: nfs-client-provisionerspec: serviceAccountName: nfs-client-provisioner containers:-name: nfs-client-provisioner image: quay. Io/external_storage/nfs-client-provisioner:latest volumeMounts:-name: nfs-client-root mountPath: / persistentvolumes env:-name: PROVISIONER_NAME value: fuseim.pri/ifs-name: NFS_SERVER value: 192.168.249.54-name: NFS_PATH Value: / data/k8s/prometheus volumes:-name: nfs-client-root nfs: server: 192.168.249.54 path: / data/k8s/prometheus
3.4 kubectl apply-f class.yaml
ApiVersion: storage.k8s.io/v1kind: StorageClassmetadata: name: managed-nfs-storageprovisioner: fuseim.pri/ifs # or choose another name, must match deployment's env PROVISIONER_NAME'parameters: archiveOnDelete: "false"
3.5 remarks indicate that nfs is deployed in advance (ip:192.168.249.54)
[root@es prometheus] # cat / etc/exports/data/k8s/prometheus 192.168.249.0 Universe 24 (rw,sync,no_root_squash) [root@es prometheus] #
4. Modify the storage address of prometheus (prometheus-statefulset.yaml)
4. Change the svc release of prometheus to nodeport
5. Deployment
Kubectl apply-f prometheus-rbac.yaml prometheus-configmap.yaml prometheus-statefulset.yaml prometheus-service.yaml
6. Visit
7.