3.9. 控制器角色验证
OpenShift Container Platform 控制器服务在所有 master 主机之间可用。该服务以主动/被动模式运行,这意味着该服务可以随时只在一个主机上运行。
OpenShift Container Platform 控制器执行一个流程来选择哪个主机运行该服务。当前运行的值存储在存储在 kube-system
项目中的特殊 configmap
中的注解中。
验证 master 主机以 cluster-admin
用户身份运行控制器服务:
$ oc get -n kube-system cm openshift-master-controllers -o yaml apiVersion: v1 kind: ConfigMap metadata: annotations: control-plane.alpha.kubernetes.io/leader: '{"holderIdentity":"master-ose-master-0.example.com-10.19.115.212-dnwrtcl4","leaseDurationSeconds":15,"acquireTime":"2018-02-17T18:16:54Z","renewTime":"2018-02-19T13:50:33Z","leaderTransitions":16}' creationTimestamp: 2018-02-02T10:30:04Z name: openshift-master-controllers namespace: kube-system resourceVersion: "17349662" selfLink: /api/v1/namespaces/kube-system/configmaps/openshift-master-controllers uid: 08636843-0804-11e8-8580-fa163eb934f0
该命令在 holderIdentity
属性中输出 control-plane.alpha.kubernetes.io/leader
注解中的当前 master 控制器,如下所示:
master-<hostname>-<ip>-<8_random_characters>
使用以下命令过滤输出来查找 master 主机的主机名:
$ oc get -n kube-system cm openshift-master-controllers -o json | jq -r '.metadata.annotations[] | fromjson.holderIdentity | match("^master-(.*)-[0-9.]*-[0-9a-z]{8}$") | .captures[0].string' ose-master-0.example.com