3.4 KiB
Integrate kubenetes
Configuration
-
Configure
isuladConfigure the
pod-sandbox-imagein/etc/isulad/daemon.json:"pod-sandbox-image": "my-pause:1.0.0"Configure the
endpointofisulad:"hosts" : [ "unix:///var/run/isulad.sock" ]if
hostsis not configured, the default endpoint isunix:///var/run/isulad.sock. -
Restart
isulad:$ sudo systemctl restart isulad -
Start
kubeletbased on the configuration or default value:$ /usr/bin/bubelet --container-runtime-endpoint=unix:///var/run/isulad.sock --image-service-endpoint=unix:///var/run/isulad.sock --pod-infra-container-image=my-pause:1.0.0 ...
Use RuntimeClass
RuntimeClass is used for selecting the container runtime configuration to use to run a pod’s containers, see runtime-class. Currently, only kata-containers and runc this two oci runtime are supported.
-
Configure
isuladin/etc/isulad/daemon.json:"runtimes": { "runc":{ "path": "/usr/bin/runc", "runtime-args": [] }, "kata-runtime": { "path": "/usr/bin/kata-runtime", "runtime-args": [ "--kata-config", "/usr/share/defaults/kata-containers/configuration.toml" ] } } -
Extra configuration
iSuladsupports theoverlay2anddevicemapperas storage drivers. The default value isoverlay2.In some scenarios, using block device type as storage drivers is a better choice, such as run a
kata-containers. The procedure for configuring thedevicemapperis as follows:Create ThinPool:
$ sudo pvcreate /dev/sdb1 # /dev/sdb1 for example $ sudo vgcreate isulad /dev/sdb $ sudo echo y | lvcreate --wipesignatures y -n thinpool isulad -L 200G $ sudo echo y | lvcreate --wipesignatures y -n thinpoolmeta isulad -L 20G $ sudo lvconvert -y --zero n -c 512K --thinpool isulad/thinpool --poolmetadata isulad/thinpoolmeta $ sudo lvchange --metadataprofile isulad-thinpool isulad/thinpoolAdd configuration for
devicemapperin/etc/isulad/daemon.json:"storage-driver": "devicemapper" "storage-opts": [ "dm.thinpooldev=/dev/mapper/isulad-thinpool", "dm.fs=ext4", "dm.min_free_space=10%" ] -
Restart
isulad:$ sudo systemctl restart isulad -
Define
RuntimeClass CRDfor example:apiVersion: node.k8s.io/v1beta1 kind: RuntimeClass metadata: name: kata-runtime handler: kata-runtime -
Define pod spec
kata-pod.yamlfor example:apiVersion: v1 kind: Pod metadata: name: kata-pod-example spec: runtimeClassName: kata-runtime containers: - name: kata-pod image: busybox:latest command: ["/bin/sh"] args: ["-c", "sleep 1000"] hostNetwork: true -
Run pod:
$ kubectl create -f kata-pod.yaml $ kubectl get pod NAME READY STATUS RESTARTS AGE kata-pod-example 1/1 Running 4 2s