Dynatrace Operator在Openshift和Kubernetes之间的区别是什么?
你好。我是Dynatrace的井上。
我从Dynatrace Advent Calendar出差回来了。
有很多Dynatrace客户选择在OpenShift或ROSA集群上部署和监控Java、Node.js或Golang应用程序,而不是在Kubernetes上。
大多数的Kubernetes、Openshift和ROSA用户都使用Dynatrace Operator。由于Kubernetes和Openshift有些不同,我们来看看它们的区别。
我在Dynatrace文件中能够大致理解,但是这次我要看YAML文件的差异。
Kubernetes的YAML清单已经按照以下步骤进行分解。
对于Openshift,也可以按照以下方式进行分解并进行批量mv。
$ mkdir Dynatrace_ocp
$ curl --silent --location \
https://github.com/Dynatrace/dynatrace-operator/releases/download/v0.14.0/openshift.yaml \
| csplit --silent --elide-empty-files --prefix Dynatrace_ocp/Operator140_ - '/^---$/' {*}
$ cd Dynatrace_ocp
$ for i in *; do mv $i $(yq '.kind += "_"|.kind += .metadata.name|.kind' $i).yaml; done
然后我们来进行比较。可以看出,Openshift有更多的文件数和设置选项。主要的区别在于安全上下文约束(SCC)。
$ diff Dynatrace_{k8s,ocp}
Only in Dynatrace_ocp: ClusterRoleBinding_dynatrace-activegate.yaml
Only in Dynatrace_ocp: ClusterRoleBinding_dynatrace-dynakube-oneagent.yaml
Only in Dynatrace_ocp: ClusterRole_dynatrace-activegate.yaml
Only in Dynatrace_ocp: ClusterRole_dynatrace-dynakube-oneagent.yaml
diff Dynatrace_k8s/ClusterRole_dynatrace-kubernetes-monitoring.yaml Dynatrace_ocp/ClusterRole_dynatrace-kubernetes-monitoring.yaml
84a85,93
> - apiGroups:
> - security.openshift.io
> resourceNames:
> - privileged
> - nonroot-v2
> resources:
> - securitycontextconstraints
> verbs:
> - use
diff Dynatrace_k8s/ClusterRole_dynatrace-operator.yaml Dynatrace_ocp/ClusterRole_dynatrace-operator.yaml
94a95,103
> - apiGroups:
> - security.openshift.io
> resourceNames:
> - privileged
> - nonroot-v2
> resources:
> - securitycontextconstraints
> verbs:
> - use
diff Dynatrace_k8s/ClusterRole_dynatrace-webhook.yaml Dynatrace_ocp/ClusterRole_dynatrace-webhook.yaml
87a88,96
> - apiGroups:
> - security.openshift.io
> resourceNames:
> - privileged
> - nonroot-v2
> resources:
> - securitycontextconstraints
> verbs:
> - use
diff Dynatrace_k8s/Deployment_dynatrace-operator.yaml Dynatrace_ocp/Deployment_dynatrace-operator.yaml
48c48
< image: docker.io/dynatrace/dynatrace-operator:v0.14.0
---
> image: registry.connect.redhat.com/dynatrace/dynatrace-operator:v0.14.0
diff Dynatrace_k8s/Deployment_dynatrace-webhook.yaml Dynatrace_ocp/Deployment_dynatrace-webhook.yaml
85c85
< image: docker.io/dynatrace/dynatrace-operator:v0.14.0
---
> image: registry.connect.redhat.com/dynatrace/dynatrace-operator:v0.14.0
希望这个无聊的结果可能正如所料,但希望它能对YAML比较方法提供一些参考。