diff --git a/v1.12.x/en/reference/dev-env/index.html b/v1.12.x/en/reference/dev-env/index.html index 495eddab8..7492ee01f 100644 --- a/v1.12.x/en/reference/dev-env/index.html +++ b/v1.12.x/en/reference/dev-env/index.html @@ -6,7 +6,7 @@ var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); -
Kube-OVN uses Golang 1.18 to develop and Go Modules to manage dependency, please check env GO111MODULE="on"
。
gosec is used to scan for code security related issues and requires to be installed in the development environment:
go get github.com/securego/gosec/v2/cmd/gosec
+ Development Setup¶
Environmental Preparation¶
Kube-OVN uses Golang 1.20 to develop and Go Modules to manage dependency, please check env GO111MODULE="on"
。
gosec is used to scan for code security related issues and requires to be installed in the development environment:
go get github.com/securego/gosec/v2/cmd/gosec
To reduce the size of the final generated image, Kube-OVN uses some of the Docker buildx experimental features, please update Docker to the latest version and enable buildx:
docker buildx create --use
Build Image¶
Use the following command to download the code and generate the image required to run Kube-OVN:
git clone https://github.com/kubeovn/kube-ovn.git
cd kube-ovn
@@ -17,7 +17,7 @@
# build arm base image
make base-arm64
-
Run E2E¶
Kube-OVN uses KIND to build local Kubernetes cluster, j2cli to render templates, and Ginkgo to run test cases. Please refer to the relevant documentation for dependency installation.
Run E2E locally:
make kind-init
+
Run E2E¶
Kube-OVN uses KIND to build local Kubernetes cluster, j2cli to render templates, and Ginkgo to run test cases. Please refer to the relevant documentation for dependency installation.
Run E2E locally:
make kind-init
make kind-install
make e2e
To run the Underlay E2E test, run the following commands:
make kind-init
diff --git a/v1.12.x/en/start/prepare/index.html b/v1.12.x/en/start/prepare/index.html
index 8c1100d5a..6c4011b6a 100644
--- a/v1.12.x/en/start/prepare/index.html
+++ b/v1.12.x/en/start/prepare/index.html
@@ -6,7 +6,7 @@
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
- Prerequisites¶
Kube-OVN is a CNI-compliant network system that depends on the Kubernetes environment and the corresponding kernel network module for its operation. Below are the operating system and software versions tested, the environment configuration and the ports that need to be opened.
Software Version¶
- Kubernetes >= 1.16,1.19 and above is recommended.
- Docker >= 1.12.6, Containerd >= 1.3.4.
- OS: CentOS 7/8, Ubuntu 16.04/18.04/20.04.
- For other Linux distributions, please make sure
geneve
, openvswitch
, ip_tables
and iptable_nat
kernel modules exist.
Attention:
- For CentOS kernel version 3.10.0-862 bug exists in
netfilter
modules that lead Kube-OVN embed nat and lb failure.Please update kernel and check Floating IPs broken after kernel upgrade to Centos/RHEL 7.5 - DNAT not working. - Kernel version 4.18.0-372.9.1.el8.x86_64 in Rocky Linux 8.6 has a TCP connection problem TCP connection failed in Rocky Linux 8.6,please update kernel to 4.18.0-372.13.1.el8_6.x86_64 or later。
- For kernel version 4.4, the related
openvswitch
module has some issues for ct,please update kernel version or manually compile openvswitch
kernel module. - When building Geneve tunnel IPv6 in kernel should be enabled,check the kernel bootstrap options with
cat /proc/cmdline
.Check Geneve tunnels don't work when ipv6 is disabled for the detail bug info.
Environment Setup¶
- Kernel should enable IPv6, if kernel bootstrap options contain
ipv6.disable=1
, it should be set to 0
. kube-proxy
works, Kube-OVN can visit kube-apiserver
from Service ClusterIP. - Make sure kubelet enabled
CNI
and find cni-bin and cni-conf in default directories, kubelet bootstrap options should contain --network-plugin=cni --cni-bin-dir=/opt/cni/bin --cni-conf-dir=/etc/cni/net.d
. - Make sure no other CNI installed or has been removed,check if any config files still exist in
/etc/cni/net.d/
.
Ports Need Open¶
Component Port Usage ovn-central 6641/tcp, 6642/tcp, 6643/tcp, 6644/tcp ovn-db and raft server listen ports ovs-ovn Geneve 6081/udp, STT 7471/tcp, Vxlan 4789/udp tunnel ports kube-ovn-controller 10660/tcp metrics port kube-ovn-daemon 10665/tcp metrics port kube-ovn-monitor 10661/tcp metrics port
Last update: February 15, 2023
Created: June 30, 2022 Comments
Prerequisites¶
Kube-OVN is a CNI-compliant network system that depends on the Kubernetes environment and the corresponding kernel network module for its operation. Below are the operating system and software versions tested, the environment configuration and the ports that need to be opened.
Software Version¶
- Kubernetes >= 1.23.
- Docker >= 1.12.6, Containerd >= 1.3.4.
- OS: CentOS 7/8, Ubuntu 16.04/18.04/20.04.
- For other Linux distributions, please make sure
geneve
, openvswitch
, ip_tables
and iptable_nat
kernel modules exist.
Attention:
- For CentOS kernel version 3.10.0-862 bug exists in
netfilter
modules that lead Kube-OVN embed nat and lb failure.Please update kernel and check Floating IPs broken after kernel upgrade to Centos/RHEL 7.5 - DNAT not working. - Kernel version 4.18.0-372.9.1.el8.x86_64 in Rocky Linux 8.6 has a TCP connection problem TCP connection failed in Rocky Linux 8.6,please update kernel to 4.18.0-372.13.1.el8_6.x86_64 or later。
- For kernel version 4.4, the related
openvswitch
module has some issues for ct,please update kernel version or manually compile openvswitch
kernel module. - When building Geneve tunnel IPv6 in kernel should be enabled,check the kernel bootstrap options with
cat /proc/cmdline
.Check Geneve tunnels don't work when ipv6 is disabled for the detail bug info.
Environment Setup¶
- Kernel should enable IPv6, if kernel bootstrap options contain
ipv6.disable=1
, it should be set to 0
. kube-proxy
works, Kube-OVN can visit kube-apiserver
from Service ClusterIP. - Make sure kubelet enabled
CNI
and find cni-bin and cni-conf in default directories, kubelet bootstrap options should contain --network-plugin=cni --cni-bin-dir=/opt/cni/bin --cni-conf-dir=/etc/cni/net.d
. - Make sure no other CNI installed or has been removed,check if any config files still exist in
/etc/cni/net.d/
.
Ports Need Open¶
Component Port Usage ovn-central 6641/tcp, 6642/tcp, 6643/tcp, 6644/tcp ovn-db and raft server listen ports ovs-ovn Geneve 6081/udp, STT 7471/tcp, Vxlan 4789/udp tunnel ports kube-ovn-controller 10660/tcp metrics port kube-ovn-daemon 10665/tcp metrics port kube-ovn-monitor 10661/tcp metrics port
Last update: July 20, 2023
Created: June 30, 2022 Comments
开发环境构建¶
环境准备¶
Kube-OVN 使用 Go 1.18 开发并使用 Go Modules 管理依赖, 请确认环境变量 GO111MODULE="on"
。
gosec 被用来扫描代码安全相关问题,需要在开发环境安装:
go get github.com/securego/gosec/v2/cmd/gosec
+ 开发环境构建¶
环境准备¶
Kube-OVN 使用 Go 1.20 开发并使用 Go Modules 管理依赖, 请确认环境变量 GO111MODULE="on"
。
gosec 被用来扫描代码安全相关问题,需要在开发环境安装:
go get github.com/securego/gosec/v2/cmd/gosec
为了降低最终生成镜像大小,Kube-OVN 使用了部分 Docker buildx 试验特性,请更新 Docker 至最新版本 并开启 buildx:
docker buildx create --use
构建镜像¶
使用下面的命令下载代码,并生成运行 Kube-OVN 所需镜像:
git clone https://github.com/kubeovn/kube-ovn.git
cd kube-ovn
@@ -35,7 +35,7 @@
make kind-install-lb-svc
make kube-ovn-lb-svc-conformance-e2e
如需清理,执行下列命令:
make kind-clean
-
最后更新: 2023年7月16日
创建日期: 2022年5月24日 评论
准备工作¶
Kube-OVN 是一个符合 CNI 规范的网络组件,其运行需要依赖 Kubernetes 环境及对应的内核网络模块。 以下是通过测试的操作系统和软件版本,环境配置和所需要开放的端口信息。
软件版本¶
- Kubernetes >= 1.16,推荐 1.19 以上版本。
- Docker >= 1.12.6, Containerd >= 1.3.4。
- 操作系统: CentOS 7/8, Ubuntu 16.04/18.04/20.04。
- 其他 Linux 发行版,需要检查一下内核模块是否存在
geneve
, openvswitch
, ip_tables
和 iptable_nat
,Kube-OVN 正常工作依赖上述模块。
注意事项:
- 如果内核版本为 3.10.0-862 内核
netfilter
模块存在 bug 会导致 Kube-OVN 内置负载均衡器无法工作,需要对内核升级,建议使用 CentOS 官方对应版本最新内核保证系统的安全。相关内核 bug 参考 Floating IPs broken after kernel upgrade to Centos/RHEL 7.5 - DNAT not working。 - Rocky Linux 8.6 的内核 4.18.0-372.9.1.el8.x86_64 存在 TCP 通信问题 TCP connection failed in Rocky Linux 8.6,请升级内核至 4.18.0-372.13.1.el8_6.x86_64 或更高版本。
- 如果内核版本为 4.4 则对应的内核
openvswitch
模块存在问题,建议升级或手动编译 openvswitch
新版本模块进行更新 - Geneve 隧道建立需要检查 IPv6,可通过
cat /proc/cmdline
检查内核启动参数, 相关内核 bug 请参考 Geneve tunnels don't work when ipv6 is disabled。
环境配置¶
- Kernel 启动需要开启 ipv6, 如果 kernel 启动参数包含
ipv6.disable=1
需要将其设置为 0。 kube-proxy
正常工作,Kube-OVN 可以通过 SVC IP 访问到 kube-apiserver
。 - 确认 kubelet 配置参数开启了 CNI,并且配置在标准路径下, kubelet 启动时应包含如下参数
--network-plugin=cni --cni-bin-dir=/opt/cni/bin --cni-conf-dir=/etc/cni/net.d
。 - 确认未安装其他网络插件,或者其他网络插件已经被清除,检查
/etc/cni/net.d/
路径下无其他网络插件配置文件。如果之前安装过其他网络插件,建议删除后重启机器清理残留网络资源。
端口信息¶
组件 端口 用途 ovn-central 6641/tcp, 6642/tcp, 6643/tcp, 6644/tcp ovn-db 和 raft server 监听端口 ovs-ovn Geneve 6081/udp, STT 7471/tcp, Vxlan 4789/udp 隧道端口 kube-ovn-controller 10660/tcp 监控监听端口 kube-ovn-daemon 10665/tcp 监控监听端口 kube-ovn-monitor 10661/tcp 监控监听端口
最后更新: 2023年2月15日
创建日期: 2022年5月20日 评论
准备工作¶
Kube-OVN 是一个符合 CNI 规范的网络组件,其运行需要依赖 Kubernetes 环境及对应的内核网络模块。 以下是通过测试的操作系统和软件版本,环境配置和所需要开放的端口信息。
软件版本¶
- Kubernetes >= 1.23。
- Docker >= 1.12.6, Containerd >= 1.3.4。
- 操作系统: CentOS 7/8, Ubuntu 16.04/18.04/20.04。
- 其他 Linux 发行版,需要检查一下内核模块是否存在
geneve
, openvswitch
, ip_tables
和 iptable_nat
,Kube-OVN 正常工作依赖上述模块。
注意事项:
- 如果内核版本为 3.10.0-862 内核
netfilter
模块存在 bug 会导致 Kube-OVN 内置负载均衡器无法工作,需要对内核升级,建议使用 CentOS 官方对应版本最新内核保证系统的安全。相关内核 bug 参考 Floating IPs broken after kernel upgrade to Centos/RHEL 7.5 - DNAT not working。 - Rocky Linux 8.6 的内核 4.18.0-372.9.1.el8.x86_64 存在 TCP 通信问题 TCP connection failed in Rocky Linux 8.6,请升级内核至 4.18.0-372.13.1.el8_6.x86_64 或更高版本。
- 如果内核版本为 4.4 则对应的内核
openvswitch
模块存在问题,建议升级或手动编译 openvswitch
新版本模块进行更新 - Geneve 隧道建立需要检查 IPv6,可通过
cat /proc/cmdline
检查内核启动参数, 相关内核 bug 请参考 Geneve tunnels don't work when ipv6 is disabled。
环境配置¶
- Kernel 启动需要开启 ipv6, 如果 kernel 启动参数包含
ipv6.disable=1
需要将其设置为 0。 kube-proxy
正常工作,Kube-OVN 可以通过 SVC IP 访问到 kube-apiserver
。 - 确认 kubelet 配置参数开启了 CNI,并且配置在标准路径下, kubelet 启动时应包含如下参数
--network-plugin=cni --cni-bin-dir=/opt/cni/bin --cni-conf-dir=/etc/cni/net.d
。 - 确认未安装其他网络插件,或者其他网络插件已经被清除,检查
/etc/cni/net.d/
路径下无其他网络插件配置文件。如果之前安装过其他网络插件,建议删除后重启机器清理残留网络资源。
端口信息¶
组件 端口 用途 ovn-central 6641/tcp, 6642/tcp, 6643/tcp, 6644/tcp ovn-db 和 raft server 监听端口 ovs-ovn Geneve 6081/udp, STT 7471/tcp, Vxlan 4789/udp 隧道端口 kube-ovn-controller 10660/tcp 监控监听端口 kube-ovn-daemon 10665/tcp 监控监听端口 kube-ovn-monitor 10661/tcp 监控监听端口
最后更新: 2023年7月20日
创建日期: 2022年5月20日 评论
开发环境构建¶
环境准备¶
Kube-OVN 使用 Go 1.18 开发并使用 Go Modules 管理依赖, 请确认环境变量 GO111MODULE="on"
。
gosec 被用来扫描代码安全相关问题,需要在开发环境安装:
go get github.com/securego/gosec/v2/cmd/gosec
+ 开发环境构建¶
环境准备¶
Kube-OVN 使用 Go 1.20 开发并使用 Go Modules 管理依赖, 请确认环境变量 GO111MODULE="on"
。
gosec 被用来扫描代码安全相关问题,需要在开发环境安装:
go get github.com/securego/gosec/v2/cmd/gosec
为了降低最终生成镜像大小,Kube-OVN 使用了部分 Docker buildx 试验特性,请更新 Docker 至最新版本 并开启 buildx:
docker buildx create --use
构建镜像¶
使用下面的命令下载代码,并生成运行 Kube-OVN 所需镜像:
git clone https://github.com/kubeovn/kube-ovn.git
cd kube-ovn
@@ -35,7 +35,7 @@
make kind-install-lb-svc
make kube-ovn-lb-svc-conformance-e2e
如需清理,执行下列命令:
make kind-clean
-
最后更新: 2023年7月16日
创建日期: 2022年5月24日 评论
准备工作¶
Kube-OVN 是一个符合 CNI 规范的网络组件,其运行需要依赖 Kubernetes 环境及对应的内核网络模块。 以下是通过测试的操作系统和软件版本,环境配置和所需要开放的端口信息。
软件版本¶
- Kubernetes >= 1.16,推荐 1.19 以上版本。
- Docker >= 1.12.6, Containerd >= 1.3.4。
- 操作系统: CentOS 7/8, Ubuntu 16.04/18.04/20.04。
- 其他 Linux 发行版,需要检查一下内核模块是否存在
geneve
, openvswitch
, ip_tables
和 iptable_nat
,Kube-OVN 正常工作依赖上述模块。
注意事项:
- 如果内核版本为 3.10.0-862 内核
netfilter
模块存在 bug 会导致 Kube-OVN 内置负载均衡器无法工作,需要对内核升级,建议使用 CentOS 官方对应版本最新内核保证系统的安全。相关内核 bug 参考 Floating IPs broken after kernel upgrade to Centos/RHEL 7.5 - DNAT not working。 - Rocky Linux 8.6 的内核 4.18.0-372.9.1.el8.x86_64 存在 TCP 通信问题 TCP connection failed in Rocky Linux 8.6,请升级内核至 4.18.0-372.13.1.el8_6.x86_64 或更高版本。
- 如果内核版本为 4.4 则对应的内核
openvswitch
模块存在问题,建议升级或手动编译 openvswitch
新版本模块进行更新 - Geneve 隧道建立需要检查 IPv6,可通过
cat /proc/cmdline
检查内核启动参数, 相关内核 bug 请参考 Geneve tunnels don't work when ipv6 is disabled。
环境配置¶
- Kernel 启动需要开启 ipv6, 如果 kernel 启动参数包含
ipv6.disable=1
需要将其设置为 0。 kube-proxy
正常工作,Kube-OVN 可以通过 SVC IP 访问到 kube-apiserver
。 - 确认 kubelet 配置参数开启了 CNI,并且配置在标准路径下, kubelet 启动时应包含如下参数
--network-plugin=cni --cni-bin-dir=/opt/cni/bin --cni-conf-dir=/etc/cni/net.d
。 - 确认未安装其他网络插件,或者其他网络插件已经被清除,检查
/etc/cni/net.d/
路径下无其他网络插件配置文件。如果之前安装过其他网络插件,建议删除后重启机器清理残留网络资源。
端口信息¶
组件 端口 用途 ovn-central 6641/tcp, 6642/tcp, 6643/tcp, 6644/tcp ovn-db 和 raft server 监听端口 ovs-ovn Geneve 6081/udp, STT 7471/tcp, Vxlan 4789/udp 隧道端口 kube-ovn-controller 10660/tcp 监控监听端口 kube-ovn-daemon 10665/tcp 监控监听端口 kube-ovn-monitor 10661/tcp 监控监听端口
最后更新: 2023年2月15日
创建日期: 2022年5月20日 评论
准备工作¶
Kube-OVN 是一个符合 CNI 规范的网络组件,其运行需要依赖 Kubernetes 环境及对应的内核网络模块。 以下是通过测试的操作系统和软件版本,环境配置和所需要开放的端口信息。
软件版本¶
- Kubernetes >= 1.23。
- Docker >= 1.12.6, Containerd >= 1.3.4。
- 操作系统: CentOS 7/8, Ubuntu 16.04/18.04/20.04。
- 其他 Linux 发行版,需要检查一下内核模块是否存在
geneve
, openvswitch
, ip_tables
和 iptable_nat
,Kube-OVN 正常工作依赖上述模块。
注意事项:
- 如果内核版本为 3.10.0-862 内核
netfilter
模块存在 bug 会导致 Kube-OVN 内置负载均衡器无法工作,需要对内核升级,建议使用 CentOS 官方对应版本最新内核保证系统的安全。相关内核 bug 参考 Floating IPs broken after kernel upgrade to Centos/RHEL 7.5 - DNAT not working。 - Rocky Linux 8.6 的内核 4.18.0-372.9.1.el8.x86_64 存在 TCP 通信问题 TCP connection failed in Rocky Linux 8.6,请升级内核至 4.18.0-372.13.1.el8_6.x86_64 或更高版本。
- 如果内核版本为 4.4 则对应的内核
openvswitch
模块存在问题,建议升级或手动编译 openvswitch
新版本模块进行更新 - Geneve 隧道建立需要检查 IPv6,可通过
cat /proc/cmdline
检查内核启动参数, 相关内核 bug 请参考 Geneve tunnels don't work when ipv6 is disabled。
环境配置¶
- Kernel 启动需要开启 ipv6, 如果 kernel 启动参数包含
ipv6.disable=1
需要将其设置为 0。 kube-proxy
正常工作,Kube-OVN 可以通过 SVC IP 访问到 kube-apiserver
。 - 确认 kubelet 配置参数开启了 CNI,并且配置在标准路径下, kubelet 启动时应包含如下参数
--network-plugin=cni --cni-bin-dir=/opt/cni/bin --cni-conf-dir=/etc/cni/net.d
。 - 确认未安装其他网络插件,或者其他网络插件已经被清除,检查
/etc/cni/net.d/
路径下无其他网络插件配置文件。如果之前安装过其他网络插件,建议删除后重启机器清理残留网络资源。
端口信息¶
组件 端口 用途 ovn-central 6641/tcp, 6642/tcp, 6643/tcp, 6644/tcp ovn-db 和 raft server 监听端口 ovs-ovn Geneve 6081/udp, STT 7471/tcp, Vxlan 4789/udp 隧道端口 kube-ovn-controller 10660/tcp 监控监听端口 kube-ovn-daemon 10665/tcp 监控监听端口 kube-ovn-monitor 10661/tcp 监控监听端口
最后更新: 2023年7月20日
创建日期: 2022年5月20日 评论