日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

創(chuàng)建并使用K8s事件中心

更新時(shí)間:

K8s事件包括集群的狀態(tài)變更,例如創(chuàng)建Pod、運(yùn)行Pod、刪除Pod、組件異常。K8s事件中心實(shí)時(shí)收集Kubernetes集群中的所有事件并提供存儲(chǔ)、查詢、分析、可視化、告警等能力。本文介紹創(chuàng)建及使用K8s事件中心的操作步驟。

背景信息

Kubernetes的架構(gòu)設(shè)計(jì)基于狀態(tài)機(jī),不同的狀態(tài)之間進(jìn)行轉(zhuǎn)換則會(huì)生成相應(yīng)的事件,正常的狀態(tài)之間轉(zhuǎn)換會(huì)生成Normal等級(jí)的事件,正常狀態(tài)與異常狀態(tài)之間的轉(zhuǎn)換會(huì)生成Warning等級(jí)的事件。

ACK提供開箱即用的容器場(chǎng)景事件監(jiān)控方案,通過ACK維護(hù)的NPD以及包含在NPD中的kube-eventer提供容器事件監(jiān)控能力。

image
  • NPD(node-problem-detector)是Kubernetes節(jié)點(diǎn)診斷的工具,可以將節(jié)點(diǎn)的異常,例如Docker Engine Hang、Linux Kernel Hang、網(wǎng)絡(luò)出網(wǎng)異常、文件描述符異常轉(zhuǎn)換為Node的事件,結(jié)合kube-eventer可以實(shí)現(xiàn)節(jié)點(diǎn)事件告警的閉環(huán)。更多信息,請(qǐng)參見NPD

  • kube-eventer是ACK維護(hù)的開源Kubernetes事件離線工具,可以將集群的事件離線到釘釘、SLS、EventBridge等系統(tǒng),并提供不同等級(jí)的過濾條件,實(shí)現(xiàn)事件的實(shí)時(shí)采集、定向告警、異步歸檔。更多信息,請(qǐng)參見kube-eventer

前提條件

已創(chuàng)建Kubernetes集群(例如阿里云ACK集群、ACK Serverless集群等)。

計(jì)費(fèi)說明

K8s事件中心具備如下條件時(shí),免費(fèi)使用。

  • K8s事件中心關(guān)聯(lián)的Logstore的存儲(chǔ)時(shí)間為90天(默認(rèn)90天)。

  • 每天寫入K8s事件中心的數(shù)據(jù)量少于256 MB(大約25萬條事件)。

例如:

  • 不調(diào)整存儲(chǔ)時(shí)間(默認(rèn)90天),且K8s集群每天產(chǎn)生1000條事件,則K8s事件中心免費(fèi)使用。

  • 調(diào)整存儲(chǔ)時(shí)間為105天,且K8s集群每天產(chǎn)生1000條事件,則超過90天后,K8s事件中心會(huì)產(chǎn)生Logstore存儲(chǔ)費(fèi)用(計(jì)費(fèi)項(xiàng)為存儲(chǔ)空間-日志存儲(chǔ)),每天費(fèi)用約0.1元。關(guān)于存儲(chǔ)空間-日志存儲(chǔ)計(jì)費(fèi)項(xiàng)的更多信息,請(qǐng)參見按使用功能計(jì)費(fèi)模式計(jì)費(fèi)項(xiàng)

產(chǎn)品試用

SLS Playground中的K8s事件中心Demo,內(nèi)置了演示數(shù)據(jù)、可視化圖表等資源,提供了完整的演示環(huán)境,便于您快速了解及體驗(yàn)功能。

您可以單擊K8s事件中心,進(jìn)行試用。

重要

SLS Playground中的數(shù)據(jù)為演示數(shù)據(jù),請(qǐng)勿用于生產(chǎn)環(huán)境。

步驟一:部署kube-eventer和node-problem-detector

阿里云Kubernetes

如果是ACK集群,則對(duì)應(yīng)阿里云Kubernetes組件中的ack-node-problem-detector組件已集成eventer和node-problem-detector功能,您只需要部署該組件。更多信息,請(qǐng)參見事件監(jiān)控。如果是ACK Serverless集群,您需要部署kube-eventer組件。

NPD根據(jù)配置與第三方插件檢測(cè)節(jié)點(diǎn)的問題或故障、生成相應(yīng)的集群事件。而Kubernetes集群自身也會(huì)因?yàn)榧籂顟B(tài)的切換產(chǎn)生各種事件,例如Pod驅(qū)逐、鏡像拉取失敗等異常情況。日志服務(wù)SLS(Log Service)的Kubernetes事件中心實(shí)時(shí)匯聚Kubernetes中的所有事件并提供存儲(chǔ)、查詢、分析、可視化、告警等能力。將集群事件接入日志服務(wù)的Kubernetes事件中心操作步驟如下。

  • 如果您在創(chuàng)建集群時(shí),已選中安裝node-problem-detector并創(chuàng)建事件中心,可直接按照步驟二查看Kubernetes事件中心。關(guān)于如何通過創(chuàng)建集群時(shí)安裝NPD組件,請(qǐng)參見創(chuàng)建ACK托管集群

  • 若創(chuàng)建集群時(shí)未選中安裝node-problem-detector并創(chuàng)建事件中心,則需手動(dòng)安裝,具體的操作步驟如下。

    1. 登錄容器服務(wù)管理控制臺(tái)

    2. 集群列表頁面,單擊目標(biāo)集群名稱,然后在左側(cè)導(dǎo)航欄,選擇運(yùn)維管理 > 組件管理

    3. 日志與監(jiān)控頁簽,查找并安裝ack-node-problem-detector

其他Kubernetes

  1. 部署eventer。

    1. 安裝kubectl工具。具體操作,請(qǐng)參見通過kubectl連接Kubernetes集群

    2. 使用以下樣例創(chuàng)建名為eventer.yaml的配置文件。

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        labels:
          name: kube-eventer
        name: kube-eventer
        namespace: kube-system
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: kube-eventer
        template:
          metadata:
            labels:
              app: kube-eventer
            annotations:
              scheduler.alpha.kubernetes.io/critical-pod: ''
          spec:
            dnsPolicy: ClusterFirstWithHostNet
            serviceAccount: kube-eventer
            containers:
              - image: registry.cn-hangzhou.aliyuncs.com/acs/kube-eventer:v1.2.5-cc7ec54-aliyun
                name: kube-eventer
                command:
                  - "/kube-eventer"
                  - "--source=kubernetes:https://kubernetes.default"
                  ## .send to sls
                  ## --sink=sls:https://{endpoint}?project={project}&logStore=k8s-event&regionId={region-id}&internal=false&accessKeyId={accessKeyId}&accessKeySecret={accessKeySecret}
                  - --sink=sls:https://cn-beijing.log.aliyuncs.com?project=k8s-xxxx&logStore=k8s-event&regionId=cn-beijing&internal=false&accessKeyId=xxx&accessKeySecret=xxx
                env:
                  # If TZ is assigned, set the TZ value as the time zone
                  - name: TZ
                    value: "Asia/Shanghai"
                volumeMounts:
                  - name: localtime
                    mountPath: /etc/localtime
                    readOnly: true
                  - name: zoneinfo
                    mountPath: /usr/share/zoneinfo
                    readOnly: true
                resources:
                  requests:
                    cpu: 10m
                    memory: 50Mi
                  limits:
                    cpu: 500m
                    memory: 250Mi
            volumes:
              - name: localtime
                hostPath:
                  path: /etc/localtime
              - name: zoneinfo
                hostPath:
                  path: /usr/share/zoneinfo
      ---
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRole
      metadata:
        name: kube-eventer
      rules:
        - apiGroups:
            - ""
          resources:
            - events
          verbs:
            - get
            - list
            - watch
      ---
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRoleBinding
      metadata:
        name: kube-eventer
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: ClusterRole
        name: kube-eventer
      subjects:
        - kind: ServiceAccount
          name: kube-eventer
          namespace: kube-system
      ---
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: kube-eventer
        namespace: kube-system

      配置項(xiàng)

      類型

      是否必選

      說明

      endpoint

      string

      必選

      日志服務(wù)的Endpoint。更多信息,請(qǐng)參見服務(wù)入口

      project

      string

      必選

      日志服務(wù)的Project。

      logStore

      string

      必選

      日志服務(wù)的Logstore。

      internal

      string

      自建Kubernetes:必選。

      自建Kubernetes必須設(shè)置為false。

      regionId

      string

      自建Kubernetes:必選。

      日志服務(wù)所在地域ID。更多信息,請(qǐng)參見服務(wù)入口

      accessKeyId

      string

      自建Kubernetes:必選。

      AccessKey ID,建議使用RAM用戶的AccessKey信息。更多信息,請(qǐng)參見訪問密鑰

      accessKeySecret

      string

      自建Kubernetes:必選。

      AccessKey Secret,建議使用RAM用戶的AccessKey信息。更多信息,請(qǐng)參見訪問密鑰

    3. 執(zhí)行以下命令,將eventer.yaml中的配置應(yīng)用到集群。

      kubectl apply -f eventer.yaml

      預(yù)期輸出:

      deployment.apps/kube-eventer created
      clusterrole.rbac.authorization.k8s.io/kube-eventer created
      clusterrolebinding.rbac.authorization.k8s.io/kube-eventer created
      serviceaccount/kube-eventer created
  2. 部署node-problem-detector。

    具體操作,請(qǐng)參見Github

步驟二:創(chuàng)建K8s事件中心實(shí)例

說明

創(chuàng)建K8s事件中心后,日志服務(wù)自動(dòng)在目標(biāo)Project中生成一個(gè)名為k8s-event的Logstore,并生成相關(guān)聯(lián)的儀表盤等。

  1. 登錄日志服務(wù)控制臺(tái)

  2. 日志應(yīng)用區(qū)域的智能運(yùn)維頁簽中,單擊K8s事件中心

  3. 事件中心管理頁面,單擊頁面右上角的添加

  4. 創(chuàng)建事件中心面板,配置相關(guān)參數(shù),然后單擊下一步

    • 如果選擇已有Project,則從Project下拉框中選擇已創(chuàng)建的Project,用于管理K8s事件中心相關(guān)資源(Logstore、儀表盤等)。

    • 如果選擇從容器服務(wù)選擇K8s集群,則從K8s集群下拉框中選擇已創(chuàng)建的K8s集群。通過此方式創(chuàng)建K8s事件中心,日志服務(wù)默認(rèn)創(chuàng)建一個(gè)名為k8s-log-{cluster-id}的Project,用于管理K8s事件中心相關(guān)資源(Logstore、儀表盤等)。

步驟三:使用K8s事件中心實(shí)例

創(chuàng)建K8s事件中心并部署eventer和NPD后,即可在K8s事件中心查看事件總覽、查詢事件詳情、查看Pod生命周期、查看節(jié)點(diǎn)事件、查看核心組件事件、設(shè)置告警、自定義查詢和更新版本等。

K8s事件中心頁面,找到目標(biāo)K8s事件中心實(shí)例,單擊k8s事件中心-002圖標(biāo),可進(jìn)行如下操作。

image

操作

說明

查看事件總覽

事件總覽頁面用于展示核心事件的匯總統(tǒng)計(jì)信息。例如事件總數(shù)、今天Error事件數(shù)與昨天的對(duì)比、告警項(xiàng)統(tǒng)計(jì)、Error事件趨勢(shì)、Pod OOM詳細(xì)信息等。

說明

目前Pod OOM信息不能精確到Pod,只能定位到事件發(fā)生的節(jié)點(diǎn)、進(jìn)程名、進(jìn)程號(hào)。您可以通過自定義查詢查找Pod OOM發(fā)生時(shí)間點(diǎn)附近的Pod重啟事件,以此定位到具體的Pod。

查詢事件詳情

事件詳情查詢頁面用于展示經(jīng)過各種維度(事件類型、事件目標(biāo)、Host、Namespace、Name)過濾后的事件詳細(xì)信息。

查看Pod生命周期

Pod生命周期頁面以圖形化方式展示Pod整個(gè)生命周期中的事件信息。您還可以通過事件等級(jí)篩選重要的Pod事件。

查看節(jié)點(diǎn)事件

節(jié)點(diǎn)事件頁面用于展示節(jié)點(diǎn)事件詳情。例如Node生命周期、事件列表等。

查看核心組件事件

核心組件事件頁面用于展示核心組件事件詳情。例如ECS重啟失敗、URL模式未執(zhí)行等。

設(shè)置告警

告警配置頁面,您可以為K8s事件中心設(shè)置告警。具體操作,請(qǐng)參見設(shè)置告警

自定義查詢

自定義查詢頁面,您可以自定義查詢和分析語句。

K8s事件中心的所有事件都保存在Logstore中,您可以使用Logstore中的所有功能,例如自定義查詢、消費(fèi)事件、創(chuàng)建自定義報(bào)表、創(chuàng)建自定義告警等。更多信息,請(qǐng)參見查詢和分析日志

如果您要訪問K8s事件中心所在的Project,可通過以下兩種方式獲取Project名稱。

  • 通過自定義查詢頁面的URL定位到Project。URL規(guī)則為https://sls.console.aliyun.com/lognext/app/k8s-event/project/k8s-log-xxxx/logsearch/k8s-event,Project字段的后一個(gè)字段即為日志服務(wù)Project名稱,例如k8s-log-xxxx。

  • 事件中心管理頁簽的K8s事件中心列表中,查看目標(biāo)K8s事件中心實(shí)例對(duì)應(yīng)的Project名稱。

更新版本

版本更新頁面,您可以升級(jí)K8s事件中心的版本。

刪除K8s事件中心實(shí)例

K8s事件中心 > 事件中心管理頁面,單擊實(shí)例名稱后操作列的k8s事件中心圖標(biāo)。

日志樣例

采集到的日志樣例如下所示。

hostname:  cn-hangzhou.i-***********"
level:  Normal
pod_id:  2a360760-****
pod_name:  logtail-ds-blkkr
event_id:  {  
   "metadata":{  
      "name":"logtail-ds-blkkr.157b7cc90de7e192",
      "namespace":"kube-system",
      "selfLink":"/api/v1/namespaces/kube-system/events/logtail-ds-blkkr.157b7cc90de7e192",
      "uid":"2aaf75ab-****",
      "resourceVersion":"6129169",
      "creationTimestamp":"2019-01-20T07:08:19Z"
   },
   "involvedObject":{  
      "kind":"Pod",
      "namespace":"kube-system",
      "name":"logtail-ds-blkkr",
      "uid":"2a360760-****",
      "apiVersion":"v1",
      "resourceVersion":"6129161",
      "fieldPath":"spec.containers{logtail}"
   },
   "reason":"Started",
   "message":"Started container",
   "source":{  
      "component":"kubelet",
      "host":"cn-hangzhou.i-***********"
   },
   "firstTimestamp":"2019-01-20T07:08:19Z",
   "lastTimestamp":"2019-01-20T07:08:19Z",
   "count":1,
   "type":"Normal",
   "eventTime":null,
   "reportingComponent":"",
   "reportingInstance":""
}

日志字段

數(shù)據(jù)類型

說明

hostname

String

事件發(fā)生所在的主機(jī)名。

level

String

日志等級(jí),包括Normal、Warning。

pod_id

String

Pod的唯一標(biāo)識(shí),僅在該事件類型和Pod相關(guān)時(shí)才具有此字段。

pod_name

String

Pod名,僅在該事件類型和Pod相關(guān)時(shí)才具有此字段。

event_id

JSON

事件的詳細(xì)內(nèi)容。該字段為JSON類型的字符串。

常見問題

K8s事件中心實(shí)例無數(shù)據(jù)

部署好K8s事件中心后,新產(chǎn)生的事件會(huì)自動(dòng)采集到K8s事件中心,您可以在自定義查詢頁面進(jìn)行搜索(建議將右上角時(shí)間范圍調(diào)整到1天)。如果無數(shù)據(jù),一般有兩個(gè)原因:

  • 部署K8s事件中心后,K8s集群還未產(chǎn)生事件。

    您可以通過kubectl get events --all-namespaces命令檢查集群內(nèi)是否有新事件產(chǎn)生。

  • 部署eventer和node-problem-detector時(shí),參數(shù)填寫錯(cuò)誤。

    • 如果您使用的是阿里云Kubernetes集群,請(qǐng)參考如下步驟。

      1. 登錄容器服務(wù)控制臺(tái)

      2. 集群頁面中,單擊目標(biāo)集群。

      3. 在左側(cè)導(dǎo)航欄中,選擇應(yīng)用 > Helm

      4. Helm頁面中,單擊ack-node-problem-detector后的更新

      5. 檢查并修改參數(shù)配置。更多信息,請(qǐng)參見步驟一:部署eventer和node-problem-detector

    • 如果您使用的是自建Kubernetes集群,參數(shù)配置請(qǐng)參見采集Kubernetes事件

如何查看事件對(duì)應(yīng)容器的日志?

  • 如果您使用的是阿里云Kubernetes集群,請(qǐng)參考如下步驟。

    1. 登錄容器服務(wù)控制臺(tái)

    2. 集群頁面中,單擊目標(biāo)集群。

    3. 在左側(cè)導(dǎo)航欄中,選擇工作負(fù)載 > 容器組

    4. 命名空間選擇為kube-system

    5. 容器組列表中,單擊目標(biāo)容器組對(duì)應(yīng)的日志

  • 如果您使用的是自建Kubernetes集群,請(qǐng)查看namespace為kube-system下文件名前綴為eventer-sls的Pod日志。