在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