配置isulad
在/etc/isulad/daemon.json
中先配置pod-sandbox-image
:
"pod-sandbox-image": "my-pause:1.0.0"
之后配置isulad
的 endpoint
:
"hosts": [
"unix:///var/run/isulad.sock"
]
如果hosts
没有配置,默认的endpoint
为unix:///var/run/isulad.sock
iSulad
同时支持CRI V1alpha2
和CRI V1
两种CRI
接口,默认使用CRI V1alph2
,若需使用CRI V1
,
需要在/etc/isulad/daemon.json
对iSulad
进行相关配置,配置方式为:
"enable-cri-v1": true,
若使用源码编译iSulad
,还需在编译时增加cmake编译选项-D ENABLE_CRI_API_V1=ON
。
重启isulad
$ sudo systemctl restart isulad
基于配置或者默认值启动kubelet
$ /usr/bin/kubelet
--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
--container-runtime=remote
...
RuntimeClass 用于选择容器运行时配置从而运行 pod 的容器,RuntimeClass 的具体信息请查看 runtime-class。目前,只支持kata-containers
和 runc
这两种oci runtime
。
在/etc/isulad/daemon.json
中配置isulad
"runtimes": {
"kata-runtime": {
"path": "/usr/bin/kata-runtime",
"runtime-args": [
"--kata-config",
"/usr/share/defaults/kata-containers/configuration.toml"
]
}
}
其他配置
isulad
支持overlay2
和 devicemapper
作为存储驱动程序,默认的为overlay2
。
在某些情况下,更适合使用块设备类型作为存储驱动程序,例如运行 kata-containers
。配置devicemapper
的过程如下:
首先创建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/thinpool
之后在/etc/isulad/daemon.json
中增加 devicemapper
的配置 :
"storage-driver": "devicemapper"
"storage-opts": [
"dm.thinpooldev=/dev/mapper/isulad-thinpool",
"dm.fs=ext4",
"dm.min_free_space=10%"
]
重启isulad
$ sudo systemctl restart isulad
定义 kata-runtime.yaml
,例如创建一个kata-runtime.yaml
内容如下:
apiVersion: node.k8s.io/v1beta1
kind: RuntimeClass
metadata:
name: kata-runtime
handler: kata-runtime
之后运行kubectl apply -f kata-runtime.yaml
命令在kubectl中让这个配置生效。
定义 pod spec kata-pod.yaml
,例如创建一个kata-pod.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"]
运行 pod
$ kubectl create -f kata-pod.yaml
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
kata-pod-example 1/1 Running 4 2s
isulad
实现了CRI接口从而可以连接CNI网络、解析CNI的网络配置文件、加入或者退出CNI网络。在本节中,我们调用 CRI 接口启动 pod 来验证 CNI 网络配置。
在/etc/isulad/daemon.json
中配置isulad
:
"network-plugin": "cni",
"cni-bin-dir": "/opt/cni/bin",
"cni-conf-dir": "/etc/cni/net.d",
准备CNI网络的插件:
编译生成 CNI 插件的二进制文件,并将该二进制文件复制到 /opt/cni/bin
。
$ git clone https://github.com/containernetworking/plugins.git
$ cd plugins && ./build_linux.sh
$ cd ./bin && ls
bandwidth bridge dhcp firewall flannel ...
准备CNI网络的配置:
配置文件的后缀可以是.conflist
或者.conf
,区别在于是否包含多个插件。例如,我们在目录/etc/cni/net.d/
下创建10-mynet.conflist
文件,内容如下:
{
"cniVersion": "0.3.1",
"name": "default",
"plugins": [
{
"name": "default",
"type": "ptp",
"ipMasq": true,
"ipam": {
"type": "host-local",
"subnet": "10.1.0.0/16",
"routes": [
{
"dst": "0.0.0.0/0"
}
]
}
},
{
"type": "portmap",
"capabilities": {
"portMappings": true
}
}
]
}
配置sandbox-config.json
:
{
"port_mappings":[{"protocol": 1, "container_port": 80, "host_port": 8080}],
"metadata": {
"name": "test",
"namespace": "default",
"attempt": 1,
"uid": "hdishd83djaidwnduwk28bcsb"
},
"labels": {
"filter_label_key": "filter_label_val"
},
"linux": {
}
}
重启isulad
并且启动pod:
$ sudo systemctl restart isulad
$ sudo crictl -i unix:///var/run/isulad.sock -r unix:///var/run/isulad.sock runp sandbox-config.json
查看pod网络信息:
$ sudo crictl -i unix:///var/run/isulad.sock -r unix:///var/run/isulad.sock inspectp <pod-id>
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )