ืคืืืคืืจืื
ืืคืชืจืื ืืืจืืจ ืืื ืืืฉืชืืฉ ื-Red Hat Enterprise Linux CoreOS (ืืจืกื ืฉื Red Hat Enterprise Linux) ื-CRI-O ืืกืื ืืจื, ืืื ื ืืกืืื...
ืืืืืื ืฉื ืืฉื ืืฉืื ืืื ื ืืฉื ืืื ืืืื ืืืฆืืืช ืื ืืืืืืช ืืืฉืจ ืืกืืืจืื ืืช ืืขืืืื ืฉื Kubernetes ืืืืืืืช, ืืืื ื ื ืกื ืืืืจ ืขื ืืืขืืืช ืืขืกืงืืืช ืฉ-CoreOS ื-CRI-O ืคืืชืจืืช, ืืขืืจืช ืืืืื
ืขืืฉืื ืชืืจื ืืขืฆืืื ืื ืืจืื ื ืืื ืฆืจืื ืืขืฉืืช ืืช ืืขืืืื ืืื ืขืืืจ 20 ืืืื ืกืคืื ืืช ืฉืื ืื (ืืจืกืืืช Kubernetes) ืืขืืืจ ืืืืฉื ืืืืื ืืืช ืฉืื ืื ืขื ืืจืื ืื ืืจืืืืช ืฉืื ืืช ืืืืืืื (ืกืคืงื ืขื ื). ืื ืืกืฃ, ื ืืจืฉ ืฉืื ืืกืคืื ืืช (ืืฉืืืืืช OpenShift), ืืื ืงืฉืจ ืืืืืื ืืืืช ืืื ืืชืืฆืข ืื ืืืื, ืื ืงืืืช ืืืื ืฉื ืืงืืจื ืืืื (ืืืคืขืืืื ืืื ืืืื ืืช ืชืคืขืื ืืืฉืืืืืช) ืืชื ืืื ืืืชื ืืืืจ. ืืื ืืืืฉืื ืืช ืืื ืืืืื ืืืืืช, ืืงืืจื ืืื ืืกืคืื ืืช ืื ืืืคืช ืืืื ืืืืื ืกืื ืฉื ืืืืงื ืืืืื (CRI-O) ืืฉืชืืฉืื ืืกืคืื ืืช ืฉืืื - ืืขืืงืจ ืืืืื ืชื ืืื ืฉืืืืืงืื ืืืื ืืืงืื ืืืืื ืื.
OpenShift 4, ืืคืืืคืืจืืช ืขื ื, ืขืืืืช ืืคื ื ืืชืืจ ืขืกืงื ืืืื ืืืื. ืืฉ ืืืฆืืจ ืฆืืชืื ืืืฉืื ืืืื ืืฆืืจืช ืืืฉืืื, ืืืงืจื ืฉื ืืฉื ืืืื ืืฆืืชืื, ืื ืืขืช ืงื ื ืืืืื ืฉื ืืืฉืืื. ืืืฉืจ ืฆืืืช ืืืฉ ื ืืฆืจ ืืืืชืื, ืืฉ ืืืืืืจ ืืช ืจืืืื ืืืืจื ืืงืจืืืืื, ืืืื CRI-O, ืืืชืื. ืืื ืืื ืืืฆืืจ ืืืจ, ืืฉ ืืกืคืง "ืืืืจื ืืื" ืืืชืืื. ืืืงืจื ืฉื ืกืคืื ืืช, ืืืืจื ืืืื ืื ืืชืืช ืืขืฅ. ืขื ืืืช, ืืืงืจื ืฉื ืืฆืืจืช ืืืจื ืืคืจืืกืช ืงืื ืืืื ืจืื ืืืฉืืื OpenShift 4, ืขืืื ืืงืื ืงืืฆื ืชืฆืืจื ืืฉืจืชืื ืืืกืืคืงืื ืขื ืืื API ืืงืื. ืืืืจ ืืื, OpenShift ืชืกืคืง ืืช ืจืืช ืืืืืืืฆืื ืื ืืจืฉืช ืืืืจื ืื ืืืืืจ ืืืืื, ืชืฆืืข ืืช ืืชืืืื ืืืืฆืจ ืืืจืืฉื ืืืฉืชืืฉื ืืงืฆื ืืืื ืชืืืืจ ืืช ืืืฉืงืขื ืืคืืืคืืจืื.
OpenShift 4 ื ืืฆืจ ืืฆืืจื ืืื ืฉืชืกืคืง ืืช ืืืืืืช ืืขืืื ืืช ืืืขืจืืช ืื ืืืืช ืืืืจื ืื ืืืืืจ ืืืืื ืฉื ืืคืืืคืืจืื (ืืืจืกืืืช 4.X) ืขืืืจ ืื ืกืคืงื ืืืฉืื ืืขื ื ืืืืืืื, ืคืืืคืืจืืืช ืืืจืืืืืืืฆืื ืืืคืืื ืืขืจืืืช ืืืื ืืฉืืฃ. ืืฉื ืื, ืืฉ ืืืฆืืจ ืฆืืชืื ืขื ืืกืืก ืืืื ืืื ืื ืืชื ืื ืืืืืคื. ืืืฉืจ ืืฉืืื ืืืจืฉ ืืจืกื ืืืฉื ืฉื Kubernetes, ืืื ืืงืื ืื ืืช ืืืจืกื ืืืงืืืื ืฉื CRI-O ื-CoreOS. ืืืืืื ืฉืืจืกืช ื-CRI-O ืงืฉืืจื ืืฉืืจืืช ื-Kubernetes, ืืืืจ ืืคืฉื ืืืื ืืช ืื ืืชืืืจืืช ืืืืจืืช ืืืืงื, ืคืชืจืื ืืขืืืช ืื ืชืืืื. ืื ืืกืฃ, ืืืฉื ืื ืืคืืืชื ืขืืืืืช ืขืืืจ ืืฉืชืืฉื ืงืฆื ื-Red Hat.
ืืืื ืืจื ืืฉืืื ืืืฉื ืืืกืืื ืขื ืืฉืืืืืช Kubernetes ืืื ืืื ืืช ืืืกืืก ืืชืื ืื ืืื ืชืืื ืืช ืืืฉืืช ืืืื ืฉืืืืฉืืืช ืืืฉืื ืขืืช. CRI-O (Container Runtime Interface - Open Container Initiative, ืืงืืฆืืจ CRI-OCI) ืืชืืจืจ ืืืืืจื ืืืืฆืืืช ืืืืชืจ ืืืฆืืจื ืืืื ืืช ืฉื ืฆืืชืื ืื ืืืฆืื ืืขืืืื ืขื OpenShift. CRI-O ืืืืืฃ ืืช ืื ืืข ื-Docker ืฉืฉืืืฉ ืืขืืจ, ืืืฆืืข ืืืฉืชืืฉื OpenShift
ืขืืื ืืืืืืืช ืืคืชืืืืช
ืืขืืื ืืชืงืื ืืืืืื ืืืืืืช ืคืชืืืืช ืืืจ ืืื ืจื. ืืื ืื ื-Kubernetes, ืืืื ืื ืืจืืืช ื ืืืืืช ืืืชืจ,
ืืื ืืชืืื ืขื ืืฆืืจืช ืืืืืช ืืืืืืช ืคืชืืืืช
ืงืืืืช Kubernetes ืคืืชืื ืื ืชืงื ืืืื ืขืืืจ ืืืฉืง ืื ืืชื ืืืืืืจ, ืื ืงืจื
ืืื ืืกืื ื-Red Hat ื-Google ืจืื ืฆืืจื ืืฉืืง ืืื ืืข ืืืืื ืฉืืืื ืืงืื ืืงืฉืืช ืฉื Kubelet ืขื ืคื ื ืคืจืืืืงืื CRI ืืืฆืืื ืงืื ืืืื ืจืื ืืชืืืืื ืืืคืจืื ื-OCI ืฉืืืืืจื ืืขืื. ืื
ืชืื ื. 1.
ืืืฉื ืืช ืขื CRI-O ื-CoreOS
ืขื ืืฉืงืช ืคืืืคืืจืืช OpenShift 4, ืืื ืฉืื ืชื
ืจืืข, ืืื ืื?
ืื ื ืืื, ืขื ืื ืืกืชื ืฉื OpenShift 4, ืืื ืขืื ืฆืืจื ืืืชืืืจ ืืืืจืืื ืืืืืื ืืืืชืงืื ืื ืืข ืงืื ืืืื ืจ, ืืืืืืจ ืืืกืื, ืืืืืืจ ืฉืจืชื ืืืคืืฉ ืื ืืืืืืจ ืจืฉืช. ืคืืืคืืจืืช OpenShift 4 ืขืืฆืื ืืืืฉ ืืืืืืื ืืื ืืืฉืชืืฉ ื
Kubernetes ืชืืื ืืคืฉืจื ืืืฉืชืืฉืื ืื ืื ืืืฉืืืื ืขื ืืื ืืืืจืช ืืืฆื ืืจืฆืื ืืฉืืืืฉ
ืขื ืืื ืฉืืืืฉ ื-Operators ืืคืืืคืืจืื, OpenShift 4 ืืืื ืืช ืืคืจืืืืื ืืืืฉื ืืื (ืืืืฆืขืืช ืืจืขืืื ืฉื ืกื ืืืฆื ืืคืืขื) ืื ืืืื ืฉื RHEL CoreOS ื-CRI-O. ืืืฉืืืืช ืฉื ืืืืจื ืื ืืืื ืืจืกืืืช ืฉื ืืขืจืืช ืืืคืขืื ืืื ืืข ืืืืืื ืืืืืืืืืช ืืืืฆืขืืช ืื ืฉื ืงืจื
ืืคืขืืช ืืืืืืช
ืืืฉืชืืฉืื ืืืืชื ืืืืื ืืช ืืืฉืชืืฉ ืืื ืืข CRI-O ืืคืืืคืืจืืช OpenShift ืืื ืืจืกื 3.7 ืืกืืืืก Tech Preview ืืืืจืกื 3.9 ืืกืืืืก Generally Available (ื ืชืื ืืจืืข). ืื ืืกืฃ, Red Hat ืืฉืชืืฉ ืืืืคื ืืกืืื
ืืืจื. 2. ืืืฆื ืคืืขืืื ืงืื ืืืื ืจืื ืืืฉืืื Kubernetes
CRI-O ืืคืฉื ืืช ืืืฆืืจื ืฉื ืืืจืื ืงืื ืืืื ืจ ืืืฉืื ืขื ืืื ืกื ืืจืื ืฉื ืื ืืจืื ืืขืืืื ื ืืขืช ืืชืืื ืฆืืชืื ืืืฉืื, ืืืขืช ืฉืืจืืจ ืืจืกืืืช ืืืฉืืช ืฉื ืคืืืคืืจืืช OpenShift. ืขืืืื ืฉื ืืคืืืคืืจืื ืืืื ืืืคืฉืจ ืขืืืื ื ืืจื ืืงืฆืืืช/ืืืืจื ืืืืืจ, ืืื ืืื ืข ืืืื ืกืชืื ืืชืืืช ืืื ืืืืช ืื ื ืืืืืื, ืื ืืข ืืืืืื, ืืฆืืชืื (Kubelets) ืืืฆืืืช Kubernetes Master. ืขื ืืื ื ืืืื ืืจืืื ืฉื ืื ืจืืืื ืืคืืืคืืจืื, ืขื ืืงืจื ืื ืืืื ืืจืกืืืช, ืืฉ ืชืืื ื ืชืื ืืจืืจ ืืืฆื ื' ืืืฆื ื'. ืื ืืคืฉื ืืช ืชืืืื ืืขืืืื, ืืฉืคืจ ืืช ืืืืืื, ืืฉืคืจ ืืช ืืืืื ืืืืฆืืขืื ืืืกืืืข ืืืคืืืช ืืช ืขืืืช ืืขืืืื ืื ืืืืชืงื ืืช ืฉื ืืจืกืืืช ืืืฉืืช .
ืืืืืช ืืืื ืฉื ืืืื ืืื ืืืืคืืื
ืืคื ืฉืืืืืจ ืงืืื ืืื, ืืฉืืืืฉ ื-Machine Config Operator ืื ืืืื ืืืจื ืืืืืื ืืื ืืข ืืืืืืืช ื-OpenShift 4 ืืกืคืง ืจืื ืืืฉื ืฉื ืืืืืืฆืื ืฉืื ืืืืชื ืืคืฉืจืืช ืืขืืจ ืืคืืืคืืจืืช Kubernetes. ืืื ืืืืืื ืืช ืืชืืื ืืช ืืืืฉืืช, ื ืจืื ืืืฆื ืชืืื ืืืฆืข ืฉืื ืืืื ืืงืืืฅ crio.conf. ืืื ืืืืื ืข ืืืืืื ืืืจืืื ืืืืืื, ื ืกื ืืืชืืงื ืืชืืฆืืืช.
ืจืืฉืืช, ืืืื ื ืืฆืืจ ืื ืฉื ืงืจื ืชืฆืืจืช ืืื ืจืืฆื ืฉื ืงืื ืืืื ืจ - Container Runtime Config. ืชืืฉืื ืขื ืื ืืขื ืืฉืื Kubernetes ืฉืืืืฆื ืืช ืืชืฆืืจื ืฉื CRI-O. ืืืฆืืืืช, ืืืื ืืจืกื ืืืืืืช ืฉื ืืฉืื ืฉื ืงืจื MachineConfig, ืฉืืื ืื ืชืฆืืจื ืฉื ืคืจืกืช ืืืืฉื RHEL CoreOS ืืืืง ืืืฉืืื OpenShift.
ืืฉืื ืืืชืื ืืืฉืืช ืื, ืื ืงืจื ContainerRuntimeConfig, ื ืืฆืจ ืืื ืืืงื ืขื ืื ืืื ืืฉืืืืืช ืืืืืืจ CRI-O. ืืื ืื ืืืง ืืกืคืืง ืืื ืฉื ืืชื ืืืื ืืืืื ืืืชื ืจืง ืขื ืฆืืชืื ืืกืืืืื ืืืชืื ืืืืืจืืช MachineConfigPool. ืชืืฉืื ืขื ืื ืืขื ืงืืืฆื ืฉื ืืืื ืืช ืฉืืฉืจืชืืช ืืช ืืืชื ืืืจื.
ืฉืืื ืื ืืฉืชื ืืฉืืจืืช ืืืืจืื ืืช ืฉืื ื ืืืืืื ืืฉื ืืช ืืงืืืฅ /etc/crio/crio.conf. ืฉืชื ืฉืืจืืช ืืื ืืืืืช ืืืื ืืฉืืจืืช ืืงืืืฅ crio.conf, ืื:
vi ContainerRuntimeConfig.yaml
ืืกืงื ื:
apiVersion: machineconfiguration.openshift.io/v1
kind: ContainerRuntimeConfig
metadata:
name: set-log-and-pid
spec:
machineConfigPoolSelector:
matchLabels:
debug-crio: config-log-and-pid
containerRuntimeConfig:
pidsLimit: 2048
logLevel: debug
ืขืืฉืื ืืืื ื ืืืืฃ ืืช ืืงืืืฅ ืืื ืืืฉืืื Kubernetes ืื ืืืืง ืฉืืื ืืื ื ืืฆืจ. ืฉืืื ืื ืฉืืคืขืืื ืืื ืืืืืืื ืืื ืืฉืื Kubernetes ืืืจ:
oc create -f ContainerRuntimeConfig.yaml
oc get ContainerRuntimeConfig
ืืกืงื ื:
NAME AGE
set-log-and-pid 22h
ืืืืจ ืฉืืฆืจื ื ืืช ContainerRuntimeConfig, ืขืืื ื ืืฉื ืืช ืืช ืืื ื-MachineConfigPools ืืื ืืืืชืช ื-Kubernetes ืฉืื ื ืจืืฆืื ืืืืื ืืช ืืชืฆืืจื ืืื ืขื ืงืืืฆื ืืกืืืืช ืฉื ืืืื ืืช ืืืฉืืื. ืืืงืจื ืื ื ืฉื ื ืืช MachineConfigPool ืขืืืจ ืืฆืืชืื ืืจืืฉืืื:
oc edit MachineConfigPool/master
ืืกืงื ื (ืืืขื ืืืืืจืืช, ื ืืชืจื ืืืืืช ืืขืืงืจืืช):
...
metadata:
creationTimestamp: 2019-04-10T23:42:28Z
generation: 1
labels:
debug-crio: config-log-and-pid
operator.machineconfiguration.openshift.io/required-for-upgrade: ""
...
ืืฉืื ืื, MCO ืืชืืื ืืืฆืืจ ืงืืืฅ crio.conf ืืืฉ ืขืืืจ ืืืฉืืื. ืืืงืจื ืื, ื ืืชื ืืืฆืื ืืช ืงืืืฅ ืืชืฆืืจื ืืืืืืจ ืืืืืื ืืืืฆืขืืช ื-API ืฉื Kubernetes. ืืืืจ, ContainerRuntimeConfig ืืื ืจืง ืืจืกื ืืืืืืช ืฉื MachineConfig, ืื ืฉื ืืื ืืจืืืช ืืช ืืชืืฆืื ืขื ืืื ืืกืชืืืืช ืขื ืืฉืืจืืช ืืจืืืื ืืืืช ื-MachineConfigs:
oc get MachineConfigs | grep rendered
ืืกืงื ื:
rendered-master-c923f24f01a0e38c77a05acfd631910b 4.0.22-201904011459-dirty 2.2.0 16h
rendered-master-f722b027a98ac5b8e0b41d71e992f626 4.0.22-201904011459-dirty 2.2.0 4m
rendered-worker-9777325797fe7e74c3f2dd11d359bc62 4.0.22-201904011459-dirty 2.2.0 16h
ืฉืื ืื ืฉืงืืืฅ ืืชืฆืืจื ืฉืืชืงืื ืขืืืจ ืืฆืืชืื ืืจืืฉืืื ืืื ืืจืกื ืืืฉื ืืืชืจ ืืืชืฆืืจืืช ืืืงืืจืืืช. ืืื ืืฆืคืืช ืื, ืืคืขื ืืช ืืคืงืืื ืืืื. ืืื, ืื ื ืืฆืืื ืื ืื ืืื ืืืื ืืื ื-one-liners ืืืืืื ืืืืชืจ ืืืืกืืืจืื ืฉื Kubernetes:
python3 -c "import sys, urllib.parse; print(urllib.parse.unquote(sys.argv[1]))" $(oc get MachineConfig/rendered-master-f722b027a98ac5b8e0b41d71e992f626 -o YAML | grep -B4 crio.conf | grep source | tail -n 1 | cut -d, -f2) | grep pid
ืืกืงื ื:
pids_limit = 2048
ืืขืช ืืืื ื ืืืื ืฉืืชืฆืืจื ืืืืื ืขื ืื ืฆืืชืื ืืืกืืจ. ืจืืฉืืช ื ืงืื ืจืฉืืื ืฉื ืฆืืชืื ืืืฉืืื:
oc get node | grep master
Output:
ip-10-0-135-153.us-east-2.compute.internal Ready master 23h v1.12.4+509916ce1
ip-10-0-154-0.us-east-2.compute.internal Ready master 23h v1.12.4+509916ce1
ip-10-0-166-79.us-east-2.compute.internal Ready master 23h v1.12.4+509916ce1
ืขืืฉืื ืืืื ื ืกืชืื ืขื ืืงืืืฅ ืืืืชืงื. ืืชื ืชืจืื ืฉืืงืืืฅ ืขืืืื ืขื ืืขืจืืื ืืืืฉืื ืขืืืจ ืืืจืืืช ื-pid ื-debug ืฉืฆืืื ื ืืืฉืื ContainerRuntimeConfig. ืืืืื ืืืืช ืขืฆืื:
oc debug node/ip-10-0-135-153.us-east-2.compute.internal โ cat /host/etc/crio/crio.conf | egrep 'debug||pidโ
ืืกืงื ื:
...
pids_limit = 2048
...
log_level = "debug"
...
ืื ืืฉืื ืืืื ืืืื ืืืฉืืื ื ืขืฉื ืืคืืื ืืืื ืืืคืขืื SSH. ืื ืืขืืืื ื ืขืฉืชื ืขื ืืื ืืืฉื ืืฆืืืช ืืืืกืืจ ืฉื Kuberentes. ืืืืืจ, ืืคืจืืืจืื ืืืืฉืื ืืืื ืืืืืจื ืจืง ืืฆืืชื ืืืกืืจ. ืฆืืชื ืืขืืืื ืื ืืฉืชื ื, ืื ืฉืืืืื ืืช ืืืชืจืื ืืช ืฉื ืืชืืืืืืืืืช Kubernetes ืฉื ืฉืืืืฉ ืืืฆืืื ืืืืืจืื ืืืืฉืืื ืืืืก ืืืืจืื ืืืืื ืืื ืืขื ืืืืื ืขื ืืืื ืืื ืื ืืชื ืื ืืืืืคื.
ืืืืืื ืฉืืืขืื ืืจืื ืืช ืืืืืืช ืืืฆืข ืฉืื ืืืื ืืืฉืืื OpenShift Container Platform 4 ืงืื ืขื ืฉืืืฉื ืฆืืชื ืืืฆืืจ ืื ืืฉืืื ืืืฆืืจ ืขื ืง ืขื 3000 ืฆืืชืื. ืืื ืืงืจื, ืืืืช ืืขืืืื ืชืืื ืืื - ืืงืื ื ืืืื - ืคืฉืื ืชืืืืจ ืืช ืงืืืฅ ContainerRuntimeConfig, ืืชืฉื ื ืชืืืืช ืืืช ื-MachineConfigPool. ืืืชื ืืืื ืืขืฉืืช ืืืช ืขื ืื ืืจืกื ืฉื OpenShift Container Platform 4.X ืืคืืขืืช ืขื Kubernetes ืืืืจื ืื ืืืืืจ ืืืืื ืฉืื.
ืืขืชืื ืงืจืืืืช ืืืจืืช ืืื ืืืืืื ืืชืคืชืืืช ืื ืื ืืืจ ืขื ืฉืืื ื ื ืืกืืืืื ืืืกืืืจ ืืืืข ืื ื ืืืืจืื ืืืื ืืืืืืืช ืืกืืืืืช ืขืืืจ ืืจืืืืื ืืืกืืกืืื. ืื ืืขื ืืืื ืืื ืืืกืืืจืืช ืืจืืื ืฉืืฉืชืืฉืื ืืงืืืืื ืืืชื ืืื ืืจืืงืฆืื ืืฉืืจื. ืืืืืื ืฉืืคืืคืืืจืืืช ืฉื ืืืืืืช ืืืื ืืืืคื ืืืขื ืขื ืืืคืขืช ืื ืืขื ืืืืืืืช, ืืฉืชืืฉืื ืืจืืื ืืื ืขื ืืื ืืขืชืื ืงืจืืืืช. ืื ืกืืื ื ืืกืคืช ืืืืข Red Hat ืืืจื ื-CRI-O. ืงืื ืืืื ืจืื ืืชืคืชืืื ืขื ืืืืฉ ืืขืช ืขื ืชืืืืจ, ืืืืืื ื ืฉ-CRI-O ืืกืคืง ืืช ืืืืืื ืืืืื ืืืืชืจ ืืขืืืื ืขื OpenShift 4.
ืืงืืจ: www.habr.com