131 lines
3.4 KiB
Markdown
131 lines
3.4 KiB
Markdown
|
|
# Integrate kubenetes
|
|||
|
|
|
|||
|
|
## Configuration
|
|||
|
|
|
|||
|
|
1. Configure `isulad`
|
|||
|
|
|
|||
|
|
Configure the `pod-sandbox-image` in `/etc/isulad/daemon.json`:
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
"pod-sandbox-image": "my-pause:1.0.0"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Configure the `endpoint`of `isulad`:
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
"hosts" : [
|
|||
|
|
"unix:///var/run/isulad.sock"
|
|||
|
|
]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
if `hosts` is not configured, the default endpoint is `unix:///var/run/isulad.sock`.
|
|||
|
|
|
|||
|
|
2. Restart `isulad`:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
$ sudo systemctl restart isulad
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
3. Start `kubelet` based on the configuration or default value:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
$ /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](https://kubernetes.io/docs/concepts/containers/runtime-class/). Currently, only `kata-containers` and `runc` this two `oci runtime` are supported.
|
|||
|
|
|
|||
|
|
1. Configure `isulad` in `/etc/isulad/daemon.json`:
|
|||
|
|
|
|||
|
|
```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"
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. Extra configuration
|
|||
|
|
|
|||
|
|
`iSulad` supports the `overlay2` and `devicemapper` as storage drivers. The default value is `overlay2`.
|
|||
|
|
|
|||
|
|
In some scenarios, using block device type as storage drivers is a better choice, such as run a `kata-containers`. The procedure for configuring the `devicemapper` is as follows:
|
|||
|
|
|
|||
|
|
Create ThinPool:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
$ 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/thinpool
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Add configuration for `devicemapper` in `/etc/isulad/daemon.json`:
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
"storage-driver": "devicemapper"
|
|||
|
|
"storage-opts": [
|
|||
|
|
"dm.thinpooldev=/dev/mapper/isulad-thinpool",
|
|||
|
|
"dm.fs=ext4",
|
|||
|
|
"dm.min_free_space=10%"
|
|||
|
|
]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
3. Restart `isulad`:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
$ sudo systemctl restart isulad
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
4. Define `RuntimeClass CRD` for example:
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
apiVersion: node.k8s.io/v1beta1
|
|||
|
|
kind: RuntimeClass
|
|||
|
|
metadata:
|
|||
|
|
name: kata-runtime
|
|||
|
|
handler: kata-runtime
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
5. Define pod spec `kata-pod.yaml` for example:
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
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
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
6. Run pod:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
$ kubectl create -f kata-pod.yaml
|
|||
|
|
$ kubectl get pod
|
|||
|
|
NAME READY STATUS RESTARTS AGE
|
|||
|
|
kata-pod-example 1/1 Running 4 2s
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
|