《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. Tensorflow Lite Android Demo App
  2. 数据结构: 是什么?
  3. vux 实现多栏滚动
  4. hibernate主配置文件的配置
  5. id、构造方法、Category 分类、类的本质、description方法、SEL
  6. C#条件运算符if-else的简化格式
  7. 【重大更新】DevExpress v17.2新版亮点—Bootstrap篇(二)
  8. python-OpenCV图像的基本运算
  9. 微信 for Mac 3.1.0 测试版发布(附安装包),新增「发朋友圈」功能
  10. 详解-OTUS(大津法-最大类间方差)原理及C语言代码实现
  11. 【Flink】The Kryo Output still contains data from a previous serialize call. It has to be flushed or
  12. 安全技巧:映像劫持与反劫持技术
  13. 中文语音识别数据集总结
  14. 计算机开机数字键盘解锁,数字键盘怎么解锁
  15. 超详细图文保姆级教程:App开发新手入门(一)
  16. CSS-7-美化网页元素
  17. 无代码开发的未来是什么样的?
  18. mysql表中字段数据类型_mysql数据表中字段的数据类型有哪些?
  19. matlab输出pdf图片超出边框,matlab - 将Matlab Simulink模型保存为PDF,带有紧密的边界框 - 堆栈内存溢出...
  20. HTTPS是怎么防止劫持的

热门文章

  1. 做折线图_Excel折线图这样做,老板看了要崩溃
  2. linux上svn的使用教程,Linux上SVN的搭建使用
  3. HTML怎么显示折后价格,HTML打折计算价格实现原理与脚本代码
  4. android申请多个运行时权限,Android 6.0(API 23) 运行时权限(二)之权限申请
  5. c保留小数点后三位数没有则为0_C语言中……“计算结果保留三位小数。”怎么表示?...
  6. 想要换壁纸,看这个网站就够了!
  7. 年底设计师少不了礼品VIP活动设计,高端轻奢感尽显品味
  8. 刚入门的UI设计师,需要懂的图标设计规范?
  9. redis db0 到 db15_深入剖析Redis系列: Redis集群模式搭建与原理详解
  10. curl post https_Fiddler抓包13fiddler 抓包导出 curl 命令行