OpenShift 3.11 Prometheus Operat

2018-11-06  本文已影响0人  ragpo

Operator 部署、运行、使用流程简介

  1. 使用 Deployment 创建 Prometheus Operator;
  2. 这时候 Operator 会自动创建 CustomResourceDefinitions(CRD),CRD 就如pod、devployment、rc等资源一样供用户使用;
  3. 这时候用 oc get customresourcedefinitions 可以看到有哪些 customresourcedefinitions;
  4. 使用 oc get 具体的 customresourcedefinitions对象(例如oc get pod 那样),就可以看到该 customresourcedefinitions 有哪些具体运行的实例了;
  5. 因为 operator 是有状态服务的管理,所以是以statefuset的方式运行

接下来以 OCP 3.11 的 Prometheus Operator 为例进行介绍

[root@master ~]# oc project
Using project "openshift-monitoring" on server "https://openshift-cluster.test2.com:8443".
[root@master ~]# oc get deployment
NAME                          DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
cluster-monitoring-operator   1         1         1            1           10d
grafana                       1         1         1            1           10d
kube-state-metrics            1         1         1            1           10d
prometheus-operator           1         1         1            1           10d
[root@master ~]# oc get deployment prometheus-operator -o yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  creationTimestamp: 2018-10-21T03:17:27Z
  generation: 229
  labels:
    k8s-app: prometheus-operator
  name: prometheus-operator
  namespace: openshift-monitoring
  resourceVersion: "104636"
  selfLink: /apis/extensions/v1beta1/namespaces/openshift-monitoring/deployments/prometheus-operator
  uid: d69fae8c-d4df-11e8-9b31-000c29c33fc6
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s-app: prometheus-operator
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        k8s-app: prometheus-operator
    spec:
      containers:
      - args:
        - --kubelet-service=kube-system/kubelet
        - --logtostderr=true
        - --config-reloader-image=172.16.37.12:5000/openshift3/ose-configmap-reloader:v3.11.16
        - --prometheus-config-reloader=172.16.37.12:5000/openshift3/ose-prometheus-config-reloader:v3.11.16
        - --namespace=openshift-monitoring
        image: 172.16.37.12:5000/openshift3/ose-prometheus-operator:v3.11.16
        imagePullPolicy: IfNotPresent
        name: prometheus-operator
        ports:
        - containerPort: 8080
          name: http
          protocol: TCP
        resources: {}
        securityContext: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      nodeSelector:
        node-role.kubernetes.io/infra: "true"
      priorityClassName: system-cluster-critical
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: prometheus-operator
      serviceAccountName: prometheus-operator
      terminationGracePeriodSeconds: 30
status:
  availableReplicas: 1
  conditions:
  - lastTransitionTime: 2018-10-21T03:17:27Z
    lastUpdateTime: 2018-10-21T03:17:31Z
    message: ReplicaSet "prometheus-operator-56c79d89b9" has successfully progressed.
    reason: NewReplicaSetAvailable
    status: "True"
    type: Progressing
  - lastTransitionTime: 2018-10-31T02:33:04Z
    lastUpdateTime: 2018-10-31T02:33:04Z
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  observedGeneration: 229
  readyReplicas: 1
  replicas: 1
  updatedReplicas: 1
[root@master ~]# oc get customresourcedefinitions
NAME                                    CREATED AT
alertmanagers.monitoring.coreos.com     2018-10-21T03:17:30Z
prometheuses.monitoring.coreos.com      2018-10-21T03:17:30Z
prometheusrules.monitoring.coreos.com   2018-10-21T03:17:30Z
servicemonitors.monitoring.coreos.com   2018-10-21T03:17:30Z
[root@master ~]# oc get customresourcedefinition prometheuses.monitoring.coreos.com -o yaml
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  creationTimestamp: 2018-10-21T03:17:30Z
  generation: 1
  name: prometheuses.monitoring.coreos.com
  resourceVersion: "2627"
  selfLink: /apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/prometheuses.monitoring.coreos.com
  uid: d80c1379-d4df-11e8-9b31-000c29c33fc6
spec:
  additionalPrinterColumns:
  - JSONPath: .metadata.creationTimestamp
    description: |-
      CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.

      Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
    name: Age
    type: date
  group: monitoring.coreos.com
  names:
    kind: Prometheus
    listKind: PrometheusList
    plural: prometheuses
    singular: prometheus
  scope: Namespaced
  validation:
    openAPIV3Schema:
[root@master ~]# oc get prometheuses.monitoring.coreos.com
NAME      AGE
k8s       10d
[root@master ~]# oc get prometheuses k8s -o yaml
apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
  creationTimestamp: 2018-10-21T03:18:03Z
  generation: 1
  labels:
    prometheus: k8s
  name: k8s
  namespace: openshift-monitoring
  resourceVersion: "2842"
  selfLink: /apis/monitoring.coreos.com/v1/namespaces/openshift-monitoring/prometheuses/k8s
  uid: ebf61283-d4df-11e8-9b31-000c29c33fc6
spec:
  alerting:
    alertmanagers:
    - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
      name: alertmanager-main
      namespace: openshift-monitoring
      port: web
      scheme: https
      tlsConfig:
        caFile: /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt
        serverName: alertmanager-main.openshift-monitoring.svc
  baseImage: 172.16.37.12:5000/openshift3/prometheus
  containers:
  - args:
    - -provider=openshift
    - -https-address=:9091
    - -http-address=
    - -email-domain=*
    - -upstream=http://localhost:9090
    - -htpasswd-file=/etc/proxy/htpasswd/auth
    - -openshift-service-account=prometheus-k8s
    - '-openshift-sar={"resource": "namespaces", "verb": "get"}'
    - '-openshift-delegate-urls={"/": {"resource": "namespaces", "verb": "get"}}'
    - -tls-cert=/etc/tls/private/tls.crt
    - -tls-key=/etc/tls/private/tls.key
    - -client-secret-file=/var/run/secrets/kubernetes.io/serviceaccount/token
    - -cookie-secret-file=/etc/proxy/secrets/session_secret
    - -openshift-ca=/etc/pki/tls/cert.pem
    - -openshift-ca=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
    - -skip-auth-regex=^/metrics
    image: 172.16.37.12:5000/openshift3/oauth-proxy:v3.11.16
    name: prometheus-proxy
    ports:
    - containerPort: 9091
      name: web
    resources: {}
    volumeMounts:
    - mountPath: /etc/tls/private
      name: secret-prometheus-k8s-tls
    - mountPath: /etc/proxy/secrets
      name: secret-prometheus-k8s-proxy
    - mountPath: /etc/proxy/htpasswd
      name: secret-prometheus-k8s-htpasswd
  externalLabels:
    cluster: openshift-cluster.test2.com
  externalUrl: https://prometheus-k8s-openshift-monitoring.test2.com/
  listenLocal: true
  nodeSelector:
    node-role.kubernetes.io/infra: "true"
  replicas: 2
  resources: {}
  retention: 15d
  ruleSelector:
    matchLabels:
      prometheus: k8s
      role: alert-rules
  secrets:
  - prometheus-k8s-tls
  - prometheus-k8s-proxy
  - prometheus-k8s-htpasswd
  securityContext: {}
  serviceAccountName: prometheus-k8s
  serviceMonitorNamespaceSelector:
    matchExpressions:
    - key: openshift.io/cluster-monitoring
      operator: Exists
  serviceMonitorSelector:
    matchExpressions:
    - key: k8s-app
      operator: Exists
  tag: v3.11.16
  version: v2.3.2
[root@master ~]# oc get statefulset
NAME                DESIRED   CURRENT   AGE
alertmanager-main   3         3         10d
prometheus-k8s      2         2         10d
[root@master ~]# oc get pod
NAME                                           READY     STATUS    RESTARTS   AGE
alertmanager-main-0                            3/3       Running   12         2d
alertmanager-main-1                            3/3       Running   12         1d
alertmanager-main-2                            3/3       Running   12         1d
cluster-monitoring-operator-6b5cdf65c5-47xtm   1/1       Running   5          2d
grafana-f47c66565-q8ddc                        2/2       Running   8          2d
kube-state-metrics-5564bb7b47-m786t            3/3       Running   13         2d
node-exporter-6v8xl                            2/2       Running   40         10d
node-exporter-vz5sv                            2/2       Running   30         10d
prometheus-k8s-0                               4/4       Running   21         1d
prometheus-k8s-1                               4/4       Running   17         1d
prometheus-operator-56c79d89b9-swb2v           1/1       Running   6          2d
[root@master ~]# oc edit prometheus k8s
prometheus.monitoring.coreos.com/k8s edited
# Please edit the object below. Lines beginning with a '#' will be ignored,
[root@master ~]# oc get statefulset
NAME                DESIRED   CURRENT   AGE
alertmanager-main   3         3         10d
prometheus-k8s      1         1         10d
[root@master ~]# oc get pod
NAME                                           READY     STATUS    RESTARTS   AGE
alertmanager-main-0                            3/3       Running   12         2d
alertmanager-main-1                            3/3       Running   12         1d
alertmanager-main-2                            3/3       Running   12         1d
cluster-monitoring-operator-6b5cdf65c5-47xtm   1/1       Running   5          2d
grafana-f47c66565-q8ddc                        2/2       Running   8          2d
kube-state-metrics-5564bb7b47-m786t            3/3       Running   13         2d
node-exporter-6v8xl                            2/2       Running   40         10d
node-exporter-vz5sv                            2/2       Running   30         10d
prometheus-k8s-0                               4/4       Running   21         1d
prometheus-operator-56c79d89b9-swb2v           1/1       Running   6          2d
[root@master ~]# oc get alertmanager
NAME      AGE
main      10d
[root@master ~]# oc edit alertmanager main
alertmanager.monitoring.coreos.com/main edited
[root@master ~]# oc get pod
NAME                                           READY     STATUS              RESTARTS   AGE
alertmanager-main-0                            0/3       ContainerCreating   0          2s
cluster-monitoring-operator-6b5cdf65c5-47xtm   1/1       Running             5          2d
grafana-f47c66565-q8ddc                        2/2       Running             8          2d
kube-state-metrics-5564bb7b47-m786t            3/3       Running             13         2d
node-exporter-6v8xl                            2/2       Running             40         10d
node-exporter-vz5sv                            2/2       Running             30         10d
prometheus-k8s-0                               4/4       Running             21         1d
prometheus-operator-56c79d89b9-swb2v           1/1       Running             6          2d
[root@master ~]# oc get pod
NAME                                           READY     STATUS    RESTARTS   AGE
alertmanager-main-0                            3/3       Running   0          8s
cluster-monitoring-operator-6b5cdf65c5-47xtm   1/1       Running   5          2d
grafana-f47c66565-q8ddc                        2/2       Running   8          2d
kube-state-metrics-5564bb7b47-m786t            3/3       Running   13         2d
node-exporter-6v8xl                            2/2       Running   40         10d
node-exporter-vz5sv                            2/2       Running   30         10d
prometheus-k8s-0                               4/4       Running   21         1d
prometheus-operator-56c79d89b9-swb2v           1/1       Running   6          2d
上一篇下一篇

猜你喜欢

热点阅读