在OpenShift/OKD 4.x上安装集群日志记录运算符

时间:2020-02-23 14:31:40  来源:igfitidea点击:

群集日志记录操作员在OpenShift或者OKD 4.x群集中创建和管理日志记录堆栈的组件。群集日志记录用于汇总来自OpenShift Container Platform群集的所有日志,例如应用程序容器日志,节点系统日志,审核日志等。

在本文中,我们将安装Logging Operator并创建一个Cluster Logging Custom Resource(CR),以调度集群日志记录pod和其他支持集群日志记录所必需的资源。通过使用操作员,群集日志的初始部署,升级和维护是操作员的责任,而不是SysAdmin的工作。

在OpenShift/OKD 4.x上安装集群日志记录运算符

默认的群集日志记录自定义资源(CR)被命名为instance。可以修改此CR,以定义完整的集群日志记录部署,其中包括日志记录堆栈的所有组件,以收集,存储和可视化日志。群集日志记录操作员监视ClusterLogging自定义资源,并相应地调整日志记录部署。

我们将从命令行界面执行部署。本文的重点是日志收集部分。我们还将有其他文章解释日志的存储和可视化。

创建运算符名称空间

我们将为Logging运算符创建一个名为openshift-logging的命名空间。

创建一个新的对象YAML文件以用于命名空间创建:

cat << EOF >ocp_cluster_logging_namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
  name: openshift-logging
  annotations:
    openshift.io/node-selector: ""
  labels:
    openshift.io/cluster-logging: "true"
    openshift.io/cluster-monitoring: "true"
EOF

应用文件以实际创建名称空间。

oc apply -f ocp_cluster_logging_namespace.yaml

创建OperatorGroup对象

接下来是安装群集日志记录器。通过运行以下命令来创建OperatorGroup对象YAML。

cat << EOF >cluster-logging-operatorgroup.yaml
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
  name: cluster-logging
  namespace: openshift-logging 
spec:
  targetNamespaces:
  - openshift-logging
EOF

创建OperatorGroup对象:

oc apply -f cluster-logging-operatorgroup.yaml

为集群日志记录操作员订阅名称空间。

我们需要为集群日志记录操作员预订名称空间。但是首先要创建一个Subscription对象的YAML文件。

cat << EOF >cluster-logging-sub.yaml
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: cluster-logging
  namespace: openshift-logging
spec:
  channel: "4.4" # Set Channel
  name: cluster-logging
  source: redhat-operators
  sourceNamespace: openshift-marketplace
EOF

创建用于将集群日志记录操作员部署到openshift-logging命名空间的订阅对象:

oc apply -f cluster-logging-sub.yaml

验证安装:

$oc get csv -n openshift-logging
NAME                                           DISPLAY                          VERSION                 REPLACES                                       PHASE
clusterlogging.4.4.0-201709161309.p0           Cluster Logging                  4.4.0-201709161309.p0                                                  Succeeded
elasticsearch-operator.4.4.0-201709161309.p0   Elasticsearch Operator           4.4.0-201709161309.p0   elasticsearch-operator.4.4.0-201709041255.p0   Succeeded

创建集群日志记录实例

为集群日志记录操作员创建实例对象YAML文件:

cat << EOF >cluster-logging-instance.yaml
apiVersion: "logging.openshift.io/v1"
kind: "ClusterLogging"
metadata:
  name: "instance" 
  namespace: "openshift-logging"
spec:
  managementState: "Managed"  
  curation:
    type: "curator"  
    curator:
      schedule: "30 3 * * *"
  collection:
    logs:
      type: "fluentd"  
      fluentd: {}
EOF

创建日志记录实例:

oc apply -f cluster-logging-instance.yaml

几分钟后检查运行的Pod。

$oc get pods -n openshift-logging
NAME                                       READY   STATUS    RESTARTS   AGE
cluster-logging-operator-f7574655b-mjj9x   1/1     Running   0          73m
fluentd-57d6h                              1/1     Running   0          36s
fluentd-dfvdc                              1/1     Running   0          36s
fluentd-j7xs8                              1/1     Running   0          36s
fluentd-ss5wr                              1/1     Running   0          36s
fluentd-tbg4c                              1/1     Running   0          36s
fluentd-tzjtg                              1/1     Running   0          36s
fluentd-v9xz9                              1/1     Running   0          36s
fluentd-vjpqp                              1/1     Running   0          36s
fluentd-z7vzf                              1/1     Running   0          36s