《OpenShift 4.x HOL教程汇总》
说明:本文已经在OpenShift 4.6环境中验证

文章目录

  • OpenShift 4 和 RHCOS
  • MachineConfig相关概念
    • MachineConfigOperator 及相关对象
    • MachineConfigPool
  • 通过MachineConfig修改Worker节点CRI-O使用的registries.conf配置
  • 参考

OpenShift 4 和 RHCOS

不像OpenShift 3和底层RHEL的那种松散关系(安装和维护都是相对独立的),OpenShift 4 和RHCOS(Red Hat CoreOS)操作系统是紧密依赖关系,它们是一起安装、一起运行。
为了获得Immutable Architecture(不可变架构)的优势,RedHat官方不建议直接进入RHCOS操作系统进行操作系统配置修改,而建议通过OpenShift 4的Operator机制修改和操作RHCOS的配置。无论是运行在节点操作系统上的kubelet以及CRI-O用到的Registry配置、还是Kernel、NetworkManager或系统时间同步,甚至连RHCOS升级都是通过Operator完成的。因此,从某个角度上可以把看作是OpenShift 4用Operator控制的一种Kubernetes资源。

MachineConfig相关概念

MachineConfigOperator 及相关对象

OpenShift 4 是使用系统级的Machine Config Operator(MCO)相关对象实现集群对节点的RHCOS管理。MCO及其相关组件都运行在openshift-machine-config-operator项目中,可以执行以下命令查看该项目下的主要对象。

$ oc get all -n openshift-machine-config-operator
NAME                                             READY   STATUS    RESTARTS   AGE
pod/etcd-quorum-guard-7666889cd6-2hch9           1/1     Running   0          20h
pod/etcd-quorum-guard-7666889cd6-c6m8k           1/1     Running   0          20h
pod/etcd-quorum-guard-7666889cd6-ht7bb           1/1     Running   0          20h
pod/machine-config-controller-7574fd5777-zssfz   1/1     Running   0          20h
pod/machine-config-daemon-2bfzg                  2/2     Running   0          21h
pod/machine-config-daemon-2g5kw                  2/2     Running   0          21h
pod/machine-config-daemon-dw2r9                  2/2     Running   0          21h
pod/machine-config-daemon-gg5vd                  2/2     Running   0          21h
pod/machine-config-daemon-w6cg2                  2/2     Running   0          21h
pod/machine-config-operator-6477b6c7c8-vcxrt     1/1     Running   0          20h
pod/machine-config-server-5bxmf                  1/1     Running   0          20h
pod/machine-config-server-8h78p                  1/1     Running   0          20h
pod/machine-config-server-lqxql                  1/1     Running   0          20hNAME                            TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)    AGE
service/machine-config-daemon   ClusterIP   172.30.9.67   <none>        9001/TCP   9dNAME                                   DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                     AGE
daemonset.apps/machine-config-daemon   5         5         5       5            5           kubernetes.io/os=linux            9d
daemonset.apps/machine-config-server   3         3         3       3            3           node-role.kubernetes.io/master=   9dNAME                                        READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/etcd-quorum-guard           3/3     3            3           9d
deployment.apps/machine-config-controller   1/1     1            1           9d
deployment.apps/machine-config-operator     1/1     1            1           9dNAME                                                   DESIRED   CURRENT   READY   AGE
replicaset.apps/etcd-quorum-guard-5fc4989788           0         0         0       9d
replicaset.apps/etcd-quorum-guard-7666889cd6           3         3         3       20h
replicaset.apps/machine-config-controller-67b8b87bb8   0         0         0       9d
replicaset.apps/machine-config-controller-7574fd5777   1         1         1       21h
replicaset.apps/machine-config-operator-5b87d8f4c5     0         0         0       9d
replicaset.apps/machine-config-operator-6477b6c7c8     1         1         1       21h

在MCO中包括以下三个子组件,MCS、MCC和MCD:

  1. MCS(MachineConfigServer):为新加入集群的新Machine提供Ignition配置。在openshift-machine-config-operator项目中它是以DaemonSet的形式运行在。可以看到MCS会在每个Master节点上都运行一份,新加入节点是通过haproxy访问MCS的。
  2. MCC(MachineConfigController):当使用MachineConfig定义了配置,MCC负责协调所有的Machines进行升级。它在openshift-machine-config-operator项目是以Deployment的方式存在的。
    1)Template Controller:负责从内部模板中为machine的预定义角色(缺省是master, worker)生成MachineConfigs。
    2)Render Controller:负责发现MachineConfigPoold的MachineConfigs,并生成静态MachineConfig定义文件(例如rendered-master-XXXX和rendered-worker-XXXX)。
    3)Update Controller:负责与每台machine上运行的MCD程协调,将machine升级到MachineConfig定义的。
    4)KubeletConfigController :负责将获得的KubeletConfig CRD配置对象实施到节点的kubelet运行环境中。
  3. MCD(MachineConfigDaemon):负责在升级过程中对Machine实施新的MachineConfig。它在openshift-machine-config-operator项目中MCD是以DaemonSet运行在集群中的所有节点上。另外MCD还负责通过OSTree对RHCOS进行滚动升级。

Machine Config Operator是通过基于CRD的对象来定义以上这些和machineconfig相关的对象的。我们可以查看在OpenShift内部定义的与machineconfig相关的CRD对象:

$ oc get crd -n openshift-config | grep machineconfig
containerruntimeconfigs.machineconfiguration.openshift.io   2020-09-09T10:17:19Z
controllerconfigs.machineconfiguration.openshift.io         2020-09-09T10:24:12Z
kubeletconfigs.machineconfiguration.openshift.io            2020-09-09T10:17:20Z
machineconfigpools.machineconfiguration.openshift.io        2020-09-09T10:17:22Z
machineconfigs.machineconfiguration.openshift.io            2020-09-09T10:17:21Z

最后可通过查看openshift-machine-config-operator项目中的对象了解Machine Config Operator维护的MachineConfigServer、MachineConfigController和MachineConfigDaemon服务,可以看到MachineConfigController和MachineConfigDaemon都是以daemonset运行的。

 oc get all -o wide -n openshift-machine-config-operator
NAME                                             READY   STATUS    RESTARTS   AGE     IP                NODE                          NOMINATED NODE   READINESS GATES
pod/machine-config-controller-7d9bcdf859-stbmm   1/1     Running   0          3h19m   10.128.0.51       master-0.ocp4-1.example.com   <none>           <none>
pod/machine-config-daemon-blqc7                  2/2     Running   0          5d17h   192.168.203.181   master-0.ocp4-1.example.com   <none>           <none>
pod/machine-config-daemon-dcdr5                  2/2     Running   0          5d16h   192.168.203.184   worker-0.ocp4-1.example.com   <none>           <none>
pod/machine-config-daemon-n9vcz                  2/2     Running   0          5d17h   192.168.203.182   master-1.ocp4-1.example.com   <none>           <none>
pod/machine-config-daemon-pq4nz                  2/2     Running   0          5d16h   192.168.203.185   worker-1.ocp4-1.example.com   <none>           <none>
pod/machine-config-daemon-pxs9d                  2/2     Running   0          5d17h   192.168.203.183   master-2.ocp4-1.example.com   <none>           <none>
pod/machine-config-operator-699d8cf454-llrdl     1/1     Running   0          3h19m   10.128.0.65       master-0.ocp4-1.example.com   <none>           <none>
pod/machine-config-server-4x82g                  1/1     Running   0          5d17h   192.168.203.182   master-1.ocp4-1.example.com   <none>           <none>
pod/machine-config-server-dns26                  1/1     Running   0          5d17h   192.168.203.183   master-2.ocp4-1.example.com   <none>           <none>
pod/machine-config-server-rlmcv                  1/1     Running   0          5d17h   192.168.203.181   master-0.ocp4-1.example.com   <none>           <none>NAME                            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE     SELECTOR
service/machine-config-daemon   ClusterIP   172.30.21.191   <none>        9001/TCP   5d17h   k8s-app=machine-config-daemonNAME                                   DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                     AGE     CONTAINERS                          IMAGES                                                                                                                                                                                                                                          SELECTOR
daemonset.apps/machine-config-daemon   5         5         5       5            5           kubernetes.io/os=linux            5d17h   machine-config-daemon,oauth-proxy   quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:7c2db2a95359d4a69fe2c7ccc05dfd9fac0df30f588cc34ebf5e6aefb393828f,quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:84264dd5793949e5fb6429952cdcbec78091576651dd07f0b943f22194b27b51   k8s-app=machine-config-daemon
daemonset.apps/machine-config-server   3         3         3       3            3           node-role.kubernetes.io/master=   5d17h   machine-config-server               quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:7c2db2a95359d4a69fe2c7ccc05dfd9fac0df30f588cc34ebf5e6aefb393828f                                                                                                                          k8s-app=machine-config-serverNAME                                        READY   UP-TO-DATE   AVAILABLE   AGE     CONTAINERS                  IMAGES                                                                                                                   SELECTOR
deployment.apps/machine-config-controller   1/1     1            1           5d17h   machine-config-controller   quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:7c2db2a95359d4a69fe2c7ccc05dfd9fac0df30f588cc34ebf5e6aefb393828f   k8s-app=machine-config-controller
deployment.apps/machine-config-operator     1/1     1            1           5d17h   machine-config-operator     quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:7c2db2a95359d4a69fe2c7ccc05dfd9fac0df30f588cc34ebf5e6aefb393828f   k8s-app=machine-config-operatorNAME                                                   DESIRED   CURRENT   READY   AGE     CONTAINERS                  IMAGES                                                                                                                   SELECTOR
replicaset.apps/machine-config-controller-7d9bcdf859   1         1         1       5d17h   machine-config-controller   quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:7c2db2a95359d4a69fe2c7ccc05dfd9fac0df30f588cc34ebf5e6aefb393828f   k8s-app=machine-config-controller,pod-template-hash=7d9bcdf859
replicaset.apps/machine-config-operator-699d8cf454     1         1         1       5d17h   machine-config-operator     quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:7c2db2a95359d4a69fe2c7ccc05dfd9fac0df30f588cc34ebf5e6aefb393828f   k8s-app=machine-config-operator,pod-template-hash=699d8cf454

MachineConfigPool

在OpenShift 4中,Node和MachineConfig是多对多关系,即一个Node可以使用多个MachineConfig,同时一个MachineConfig可以属于多个Node。一个Node使用哪个MachineConfig配置是MachineConfigPool决定的,即MachineConfigPool将MachineConfig和Node关联起来。

  1. 查看machineconfig
$ oc get machineconfig
NAME                                                        GENERATEDBYCONTROLLER                      IGNITIONVERSION   AGE
00-master                                                   99eb744f5094224edb60d88ca85d607ab151ebdf   3.1.0             3d21h
00-worker                                                   99eb744f5094224edb60d88ca85d607ab151ebdf   3.1.0             3d21h
01-master-container-runtime                                 99eb744f5094224edb60d88ca85d607ab151ebdf   3.1.0             3d21h
01-master-kubelet                                           99eb744f5094224edb60d88ca85d607ab151ebdf   3.1.0             3d21h
01-worker-container-runtime                                 99eb744f5094224edb60d88ca85d607ab151ebdf   3.1.0             3d21h
01-worker-kubelet                                           99eb744f5094224edb60d88ca85d607ab151ebdf   3.1.0             3d21h
99-master-58a1f119-d339-4e40-b218-ca459783104e-registries   99eb744f5094224edb60d88ca85d607ab151ebdf   3.1.0             3d21h
99-master-ssh                                                                                          3.1.0             3d21h
99-worker-d20cffe7-8ad8-42fe-9a9d-9dc35f256f45-registries   99eb744f5094224edb60d88ca85d607ab151ebdf   3.1.0             3d21h
99-worker-ssh                                                                                          3.1.0             3d21h
rendered-master-68ea973a611b4e8a11a6492328c661bd            99eb744f5094224edb60d88ca85d607ab151ebdf   3.1.0             3d21h
rendered-worker-a733a9c295cb7b15cf7af2e7251e9a3f            99eb744f5094224edb60d88ca85d607ab151ebdf   3.1.0             3d21h
  1. 查看node
$ oc get node
NAME                                              STATUS   ROLES    AGE     VERSION
ip-10-0-139-50.ap-southeast-1.compute.internal    Ready    master   3d21h   v1.19.0+d59ce34
ip-10-0-155-228.ap-southeast-1.compute.internal   Ready    worker   3d21h   v1.19.0+d59ce34
ip-10-0-172-203.ap-southeast-1.compute.internal   Ready    master   3d21h   v1.19.0+d59ce34
ip-10-0-190-239.ap-southeast-1.compute.internal   Ready    worker   3d21h   v1.19.0+d59ce34
ip-10-0-205-123.ap-southeast-1.compute.internal   Ready    master   3d21h   v1.19.0+d59ce34
  1. 查看machineconfigpool。
$ oc get machineconfigpool
NAME     CONFIG                                              UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE
master   rendered-master-68ea973a611b4e8a11a6492328c661bd   True      False      False      3              3                   3                     0                      3d21h
worker   rendered-worker-a733a9c295cb7b15cf7af2e7251e9a3f   True      False      False      2              2                   2                     0                      3d21h
$ oc describe MachineConfigPool worker
...
Spec:Configuration:Name:  rendered-worker-a733a9c295cb7b15cf7af2e7251e9a3fSource:API Version:  machineconfiguration.openshift.io/v1Kind:         MachineConfigName:         00-workerAPI Version:  machineconfiguration.openshift.io/v1Kind:         MachineConfigName:         01-worker-container-runtimeAPI Version:  machineconfiguration.openshift.io/v1Kind:         MachineConfigName:         01-worker-kubeletAPI Version:  machineconfiguration.openshift.io/v1Kind:         MachineConfigName:         99-worker-d20cffe7-8ad8-42fe-9a9d-9dc35f256f45-registriesAPI Version:  machineconfiguration.openshift.io/v1Kind:         MachineConfigName:         99-worker-sshMachine Config Selector:Match Labels:machineconfiguration.openshift.io/role:  workerNode Selector:Match Labels:node-role.kubernetes.io/worker:
...
  1. 对于名为worker的MachineConfigPool,查看被RenderController加工后所包含到的相关配置文件。
$ RENDERED_WORKER_MACHINE_CONFIG=$(oc get machineconfigpool worker --template={{.spec.configuration.name}})
$ oc describe machineconfigs ${RENDERED_WORKER_MACHINE_CONFIG} | grep Path:Path:        /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crtPath:        /etc/tmpfiles.d/cleanup-cni.confPath:        /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pemPath:        /etc/containers/storage.confPath:        /etc/NetworkManager/dispatcher.d/90-long-hostnamePath:        /etc/modules-load.d/iptables.confPath:        /etc/kubernetes/kubelet-ca.crtPath:        /etc/systemd/system.conf.d/kubelet-cgroups.confPath:        /etc/NetworkManager/conf.d/sdn.confPath:        /var/lib/kubelet/config.jsonPath:        /etc/kubernetes/ca.crtPath:        /etc/sysctl.d/forward.confPath:        /etc/sysctl.d/inotify.confPath:        /usr/local/sbin/set-valid-hostname.shPath:        /etc/kubernetes/kubelet-plugins/volume/exec/.dummyPath:        /etc/containers/registries.confPath:        /etc/crio/crio.conf.d/00-defaultPath:        /etc/containers/policy.jsonPath:        /etc/kubernetes/cloud.confPath:        /etc/kubernetes/kubelet.conf

通过MachineConfig修改Worker节点CRI-O使用的registries.conf配置

  1. 在Terminal -1执行命令进入一个Worker Node,然后查看“/etc/containers/registries.conf”文件内容,确认文件里的内容。
$ oc debug node/<WORKER_NODE_NAME>
sh-4.4# chroot /host
sh-4.4# cat /etc/containers/registries.conf
unqualified-search-registries = ['registry.access.redhat.com', 'docker.io']
  1. 在Terminal-2创建内容如下的“50-worker-container-registries.yaml文件”。
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:labels:machineconfiguration.openshift.io/role: workername: 50-worker-container-registries
spec:config:ignition:version: 3.2.0storage:files:- contents:source: data:,%5Bregistries.search%5D%0Aregistries%20%3D%20%5B'registry.access.redhat.com'%2C%20'docker.io'%2C%20'quay.io'%5D%0A%0A%5Bregistries.insecure%5D%0Aregistries%20%3D%20%5B%5D%0A%0A%5Bregistries.block%5D%0Aregistries%20%3D%20%5B%5D%0Afilesystem: rootmode: 420path: /etc/containers/registries.conf
  1. 在Terminal-2中执行命令,创建MachineConfig。
$ oc create -f 50-worker-container-registries.yaml
  1. 在Terminal-2中查看worker节点的状态,通过状态(SchedulingDisabled)确认2个worker节点逐一进行了配置更新。
$ oc get nodes -l node-role.kubernetes.io/worker -w
NAME                                              STATUS                     ROLES    AGE   VERSION
ip-10-0-155-228.ap-southeast-1.compute.internal   Ready,SchedulingDisabled   worker   8d    v1.19.0+d59ce34
ip-10-0-190-239.ap-southeast-1.compute.internal   Ready                      worker   8d    v1.19.0+d59ce34
ip-10-0-155-228.ap-southeast-1.compute.internal   Ready,SchedulingDisabled   worker   8d    v1.19.0+d59ce34
ip-10-0-155-228.ap-southeast-1.compute.internal   Ready,SchedulingDisabled   worker   8d    v1.19.0+d59ce34
ip-10-0-155-228.ap-southeast-1.compute.internal   Ready,SchedulingDisabled   worker   8d    v1.19.0+d59ce34
ip-10-0-155-228.ap-southeast-1.compute.internal   Ready                      worker   8d    v1.19.0+d59ce34
ip-10-0-190-239.ap-southeast-1.compute.internal   Ready,SchedulingDisabled   worker   8d    v1.19.0+d59ce34
ip-10-0-155-228.ap-southeast-1.compute.internal   Ready                      worker   8d    v1.19.0+d59ce34
ip-10-0-190-239.ap-southeast-1.compute.internal   Ready,SchedulingDisabled   worker   8d    v1.19.0+d59ce34
ip-10-0-190-239.ap-southeast-1.compute.internal   Ready,SchedulingDisabled   worker   8d    v1.19.0+d59ce34
ip-10-0-190-239.ap-southeast-1.compute.internal   Ready,SchedulingDisabled   worker   8d    v1.19.0+d59ce34
ip-10-0-190-239.ap-southeast-1.compute.internal   Ready,SchedulingDisabled   worker   8d    v1.19.0+d59ce34
ip-10-0-190-239.ap-southeast-1.compute.internal   Ready,SchedulingDisabled   worker   8d    v1.19.0+d59ce34
ip-10-0-190-239.ap-southeast-1.compute.internal   Ready                      worker   8d    v1.19.0+d59ce34
  1. 在Terminal-1中查看Worker节点的“/etc/containers/registries.conf”f配置已经被修改。
sh-4.4#  cat /etc/containers/registries.conf
[registries.search]
registries = ['registry.access.redhat.com', 'docker.io', 'quay.io'][registries.insecure]
registries = [][registries.block]
registries = []
sh-4.4# exit
exit
sh-4.4# exit
exit
  1. 再次查看machineconfigpool,确认worker使用的rendered后的配置已经变了。
$ oc get machineconfigpool
NAME     CONFIG                                             UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE
master   rendered-master-68ea973a611b4e8a11a6492328c661bd   True      False      False      3              3                   3                     0                      9d
worker   rendered-worker-90e84f625715399f91f5ffff66019273   True      False      False      2              2                   2                     0                      9d
  1. 再次查看名为worker的machineconfigpool的配置信息,其中包括前面新加的名为“50-worker-container-registries”的MachineConfig。
$ oc describe MachineConfigPool worker
。。。
Spec:Configuration:Name:  rendered-worker-90e84f625715399f91f5ffff66019273Source:API Version:  machineconfiguration.openshift.io/v1Kind:         MachineConfigName:         00-workerAPI Version:  machineconfiguration.openshift.io/v1Kind:         MachineConfigName:         01-worker-container-runtimeAPI Version:  machineconfiguration.openshift.io/v1Kind:         MachineConfigName:         01-worker-kubeletAPI Version:  machineconfiguration.openshift.io/v1Kind:         MachineConfigName:         50-worker-container-registriesAPI Version:  machineconfiguration.openshift.io/v1Kind:         MachineConfigName:         99-worker-d20cffe7-8ad8-42fe-9a9d-9dc35f256f45-registriesAPI Version:  machineconfiguration.openshift.io/v1Kind:         MachineConfigName:         99-worker-sshMachine Config Selector:Match Labels:machineconfiguration.openshift.io/role:  workerNode Selector:Match Labels:node-role.kubernetes.io/worker:
...
  1. 再次查看名为worker的machineconfigs中对应的配置文件,确认最后一行已经有对“registries.conf”文件的配置了。
$ oc describe machineconfigs ${RENDERED_WORKER_MACHINE_CONFIG} | grep Path:Path:        /etc/pki/ca-trust/source/anchors/openshift-config-user-ca-bundle.crtPath:        /etc/tmpfiles.d/cleanup-cni.confPath:        /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pemPath:        /etc/containers/storage.confPath:        /etc/NetworkManager/dispatcher.d/90-long-hostnamePath:        /etc/modules-load.d/iptables.confPath:        /etc/kubernetes/kubelet-ca.crtPath:        /etc/systemd/system.conf.d/kubelet-cgroups.confPath:        /etc/NetworkManager/conf.d/sdn.confPath:        /var/lib/kubelet/config.jsonPath:        /etc/kubernetes/ca.crtPath:        /etc/sysctl.d/forward.confPath:        /etc/sysctl.d/inotify.confPath:        /usr/local/sbin/set-valid-hostname.shPath:        /etc/kubernetes/kubelet-plugins/volume/exec/.dummyPath:        /etc/containers/registries.confPath:        /etc/crio/crio.conf.d/00-defaultPath:        /etc/containers/policy.jsonPath:        /etc/kubernetes/cloud.confPath:        /etc/kubernetes/kubelet.confPath:        /etc/containers/registries.conf

参考

https://github.com/openshift/machine-config-operator
https://github.com/coreos/ignition/blob/master/doc/configuration-v3_0.md
https://www.redhat.com/en/blog/openshift-container-platform-4-how-does-machine-config-pool-work
http://jstakun.blogspot.com/2019/06/managing-cluster-nodes-configuration-in.html

OpenShift 4 - 如何用Machine Config Operator修改集群节点CoreOS的配置相关推荐

  1. OpenShift 4 - 用KubeletConfig和ContainerRuntimeConfig分别修改集群节点的Kubelet和cri-o的配置

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.6环境中验证 文章目录 Kubelet.KubeletConfig和KubeletConfigCon ...

  2. OpenShift 4 - 集群节点日志和API审计日志策略

    <OpenShift / RHEL / DevSecOps 汇总目录> 说明:本文已经在OpenShift 4.8 环境中验证 文章目录 集群节点日志 集群节点日志类型 收集集群节点日志 ...

  3. OpenShift 4 - 利用 File Integrity Operator 实现对集群节点进行入侵检测

    <OpenShift / RHEL / DevSecOps 汇总目录> 说明:本文已经在OpenShift 4.9环境中验证 文章目录 File Integrity Operator 功能 ...

  4. OpenShift 4 - 设置集群节点和Pod容器的时间和时区

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.6环境中验证 文章目录 OpenShift的时间和时区 节点和容器的时间 节点和容器的时区 节点时间 ...

  5. OpenShift 4 - 在集群节点用crictl对Pod/Image/Container进行操作

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.6环境中验证 文章目录 查看crictl命令的配置文件 用crictl命令操作Pod/Image/C ...

  6. OpenShift 4 之让Route只运行在集群中Infra节点

    很多OpenShift的用户都非常喜欢其自带的Route功能,Route为外部用户提供了访问Pod的负载均衡功能,它要比Kubernetes缺省提供的Ingress功能强大很多.有关介绍可参见< ...

  7. 如何修改集群的公网信息(包括 VIP) (文档 ID 1674442.1)

    如何修改集群的公网信息(包括 VIP) (文档 ID 1674442.1) 文档内容 用途 适用范围 详细信息   情况1.   修改公网对应的主机名   情况2.  只修改公网 IP或者VIP, 但 ...

  8. Linux LB 集群知识、如何用 LVS 方式实现 LB 集群?

    LB负载均衡的目的是为了提高访问的并发性和服务器的性能.实现 LB 的方式主要有软件方式和硬件方式.软件方式实现的软件有LVS工作于传输层.nginx工作于应用层haproxy工作于传输层和应用层硬件 ...

  9. cluster oracle修改,Oracle 修改集群的资源属性(依赖关系)

    修改集群的资源属性: -- 在11g中 使用Crsctl modify resource res_name -attr 命令可以随意添加修改集群的各项资源的属性 来个例子: 查看数据库资源的全部属性: ...

最新文章

  1. Oracle的括号转义字符,SQL中通配符、转义符与括号的使用
  2. 【并查集】打击犯罪(ssl 2342)
  3. 小朋友排队|2014年蓝桥杯B组题解析第十题-fishers
  4. 如何实现 C/C++ 与 Python 的通信?
  5. vue rem适配_vue如何使用UI库快速开发项目
  6. COJ 1700:联通与次联通
  7. 淘汰Hyper-V replication 拥抱Storage Replica
  8. 【华为云技术分享】《跟唐老师学习云网络》—我的网络概念
  9. linux yum自动挂载_Linux系统本地Yum仓库制作
  10. 干货 | 彻底理解ANDROID BINDER通信架构(下)
  11. PostgreSQL在何处处理 sql查询之六十三
  12. 方案分享丨基于海思Hi3519智能 IP 摄像机解决方案
  13. VBA让Excel数据去重,数量相加
  14. 加密文件夹里的图片打不开
  15. 基于SSM的医院科室人员管理系统
  16. 动词ing基本用法_动词-ing的形式及用法
  17. 人才补贴,正式取消?
  18. SPSS学习(1)之数据录入与数据获取
  19. 葡,西两国发展史(大航海时代)启示
  20. oracle exception others,Oracle PL/SQL之EXCEPTION -- WHEN OTHERS THEN

热门文章

  1. python从html拿到数据,python - 使用BeautifulSoup和Python从HTML文件中提取数据 - 堆栈内存溢出...
  2. 与熊论道为什么解码不了_楼上熊孩子瞎蹦跳,楼下邻居投诉无果,一招吓哭“熊一家”...
  3. Linux开启可视化进程传递pts,Linux下tty/pty/pts/ptmx详解(转)
  4. mysql2014安装文档_hive安装文档
  5. java lang jar_在运行时,Java jar返回java.lang.NoClassDefFoundError
  6. mysql通过日志恢复数据_mysql通过binlog日志来恢复数据
  7. java annotations详解_Java Annotations详解
  8. 高图壁纸网站,承包了你一年的电脑壁纸
  9. 设计灵感|纯文字排版也能让海报引人注目
  10. win10java配置环境变量msi_Windows10+eclipse+hadoop2.7.1环境配置+wordcount-折腾笔记