Unverified Commit 0258e5dd authored by Oilbeater's avatar Oilbeater Committed by GitHub
Browse files

Merge pull request #299 from alauda/release/1.1

release 1.1.0
parents a0ba627a de9b003d
Showing with 114 additions and 28 deletions
+114 -28
# CHANGELOG
## v1.1.0 -- 2020/04/07
In this version, we refactor IPAM to separate IP allocation logical from OVN.
On top of that we provide a general cluster wide IPAM utility for other CNI plugins.
Now other CNI plugins like macvlan/host-device/vlan etc can take advantage of subnet and static ip allocation functions in Kube-OVN.
Please check [this document](docs/multi-nic.md) to see how we combine Kube-OVN and Multus-CNI to provide multi-nic container network.
### IPAM
* Separate IPAM logical form OVN
* Add support for Multus-CNI
### Performance
* Recycle address if pod is in failed or succeeded phase
* Delete chassis form ovn-sb when node deleted
* Only enqueue updatePod when needed
* Add x86 optimization CFLAGS
* Add support to disable encapsulation checksum
### Monitor
* Diagnose will check Kube-OVN components status
* Diagnose will check crd status
* Diagnose will check kube-proxy and coredns status
### Bugfix
* Use uuid to fetch lb vips
* Add inactivity_probe back
* Update svc might remove other svc that with same prefix
* IP prefix might be empty
* Enqueue subnet update to add route
* Add iptables to accept container traffic
### Chore
* Update OVN to 20.03 and OVS to 2.13
* Add support for Kubernetes 1.17
* Put all component in one image to reduce distribute burden
* Add scripts to build ovs
* Add one script installer
* Add uninstall script
* Add more e2e tests
## v1.0.1 -- 2020/03/31
This release fix bugs found in v1.0.0
......
v1.1.0-pre
v1.1.0
......@@ -8,7 +8,7 @@ SVC_CIDR="10.96.0.0/12" # Do NOT overlap with NODE/POD/JOIN CIDR
JOIN_CIDR="100.64.0.0/16" # Do NOT overlap with NODE/POD/SVC CIDR
LABEL="node-role.kubernetes.io/master" # The node label to deploy OVN DB
IFACE="" # The nic to support container network, if empty will use the nic that the default route use
VERSION="v1.1.0-pre"
VERSION="v1.1.0"
echo "[Step 1] Label kube-ovn-master node"
count=$(kubectl get no -l$LABEL --no-headers -o wide | wc -l | sed 's/ //g')
......@@ -16,6 +16,7 @@ if [ "$count" = "0" ]; then
echo "ERROR: No node with label $LABEL"
exit 1
fi
kubectl label no -lbeta.kubernetes.io/os=linux kubernetes.io/os=linux --overwrite
kubectl label no -l$LABEL kube-ovn/role=master --overwrite
echo "-------------------------------"
echo ""
......@@ -302,6 +303,8 @@ spec:
readOnly: true
- mountPath: /etc/openvswitch
name: host-config-openvswitch
- mountPath: /etc/ovn
name: host-config-ovn
- mountPath: /var/log/openvswitch
name: host-log-ovs
- mountPath: /var/log/ovn
......@@ -336,6 +339,9 @@ spec:
- name: host-config-openvswitch
hostPath:
path: /etc/origin/openvswitch
- name: host-config-ovn
hostPath:
path: /etc/origin/ovn
- name: host-log-ovs
hostPath:
path: /var/log/openvswitch
......
......@@ -8,4 +8,5 @@ rm -rf /etc/openvswitch/*
rm -rf /etc/ovn/*
rm -rf /var/log/openvswitch/*
rm -rf /var/log/ovn/*
rm -rf /etc/cni/net.d/00-kube-ovn.conflist
rm -rf /etc/cni/net.d/01-kube-ovn.conflist
......@@ -4,9 +4,12 @@
Kube-OVN is developed by [Go](https://golang.org/) and uses [Go Modules](https://github.com/golang/go/wiki/Modules) to manage dependency.
To minimize image size we use docker experiment buildx features, please enable it through the [reference](https://docs.docker.com/develop/develop-images/build_enhancements/).
```
git clone https://github.com/alauda/kube-ovn.git
cd kube-ovn
make ovs
make release
```
......
......@@ -16,24 +16,52 @@ Kube-OVN includes two parts:
## To Install
### One Script Installer
Kube-OVN provides a one script install to easily install Kube-OVN
1. Download the installer scripts
`wget https://raw.githubusercontent.com/alauda/kube-ovn/v1.1.0/dist/images/install.sh`
2. Use vim to edit the script variables to meet your requirement
```bash
REGISTRY="index.alauda.cn/alaudak8s"
NAMESPACE="kube-system" # The ns to deploy kube-ovn
POD_CIDR="10.16.0.0/16" # Do NOT overlap with NODE/SVC/JOIN CIDR
SVC_CIDR="10.96.0.0/12" # Do NOT overlap with NODE/POD/JOIN CIDR
JOIN_CIDR="100.64.0.0/16" # Do NOT overlap with NODE/POD/SVC CIDR
LABEL="node-role.kubernetes.io/master" # The node label to deploy OVN DB
IFACE="" # The nic to support container network, if empty will use the nic that the default route use
VERSION="v1.1.0"
```
3. Execute the script
`bash install.sh`
### Step by Step Install
If you want to know the detail steps to install Kube-OVN, please follow the steps.
For Kubernetes version before 1.17 please use the following command to add the node label
1. Add the following label to the Node which will host the OVN DB and the OVN Control Plane:
`kubectl label node <Node on which to deploy OVN DB> kube-ovn/role=master`
2. Install Kube-OVN related CRDs
`kubectl apply -f https://raw.githubusercontent.com/alauda/kube-ovn/v1.0.1/yamls/crd.yaml`
`kubectl apply -f https://raw.githubusercontent.com/alauda/kube-ovn/v1.1.0/yamls/crd.yaml`
3. Install native OVS and OVN components:
`kubectl apply -f https://raw.githubusercontent.com/alauda/kube-ovn/v1.0.1/yamls/ovn.yaml`
`kubectl apply -f https://raw.githubusercontent.com/alauda/kube-ovn/v1.1.0/yamls/ovn.yaml`
4. Install the Kube-OVN Controller and CNI plugins:
`kubectl apply -f https://raw.githubusercontent.com/alauda/kube-ovn/v1.0.1/yamls/kube-ovn.yaml`
`kubectl apply -f https://raw.githubusercontent.com/alauda/kube-ovn/v1.1.0/yamls/kube-ovn.yaml`
That's all! You can now create some pods and test connectivity.
For high-available ovn db, see [high available](high-available.md)
If you want to enable IPv6 on default subnet and node subnet, please apply https://raw.githubusercontent.com/alauda/kube-ovn/v1.0.1/yamls/kube-ovn-ipv6.yaml on Step 3.
If you want to enable IPv6 on default subnet and node subnet, please apply https://raw.githubusercontent.com/alauda/kube-ovn/v1.1.0/yamls/kube-ovn-ipv6.yaml on Step 3.
## More Configuration
......@@ -83,10 +111,12 @@ You can use `--default-cidr` flags below to config default Pod CIDR or create a
1. Remove Kubernetes resources:
```bash
wget https://raw.githubusercontent.com/alauda/kube-ovn/v1.0.1/dist/images/cleanup.sh
wget https://raw.githubusercontent.com/alauda/kube-ovn/v1.1.0/dist/images/cleanup.sh
bash cleanup.sh
```
For version before v1.1 you need the following steps
2. Delete OVN/OVS DB and config files on every Node:
```bash
......@@ -94,6 +124,7 @@ You can use `--default-cidr` flags below to config default Pod CIDR or create a
rm -rf /etc/origin/openvswitch/
rm -rf /etc/openvswitch
rm -rf /etc/cni/net.d/00-kube-ovn.conflist
rm -rf /etc/cni/net.d/01-kube-ovn.conflist
rm -rf /var/log/openvswitch
```
3. Reboot the Node to remove ipset/iptables rules and nics.
......@@ -8,7 +8,7 @@ To enable kubectl plugin, kubectl version of 1.12 or later is recommended. You c
1. Get the `kubectl-ko` file
```bash
wget https://raw.githubusercontent.com/alauda/kube-ovn/master/dist/images/kubectl-ko
wget https://raw.githubusercontent.com/alauda/kube-ovn/v1.1.0/dist/images/kubectl-ko
```
2. Move the file to one of $PATH directories
......
......@@ -39,7 +39,7 @@ spec:
hostNetwork: true
containers:
- name: kube-ovn-controller
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0-pre"
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0"
imagePullPolicy: IfNotPresent
command:
- /kube-ovn/start-controller.sh
......@@ -110,7 +110,7 @@ spec:
hostPID: true
initContainers:
- name: install-cni
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0-pre"
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0"
imagePullPolicy: IfNotPresent
command: ["/kube-ovn/install-cni.sh"]
securityContext:
......@@ -123,7 +123,7 @@ spec:
name: cni-bin
containers:
- name: cni-server
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0-pre"
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0"
command: ["sh", "/kube-ovn/start-cniserver.sh"]
args:
- --enable-mirror=false
......@@ -206,7 +206,7 @@ spec:
hostPID: true
containers:
- name: pinger
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0-pre"
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0"
imagePullPolicy: IfNotPresent
command: ["/kube-ovn/kube-ovn-pinger"]
securityContext:
......
......@@ -39,7 +39,7 @@ spec:
hostNetwork: true
containers:
- name: kube-ovn-controller
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0-pre"
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0"
imagePullPolicy: IfNotPresent
command:
- /kube-ovn/start-controller.sh
......@@ -108,7 +108,7 @@ spec:
hostPID: true
initContainers:
- name: install-cni
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0-pre"
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0"
imagePullPolicy: IfNotPresent
command: ["/kube-ovn/install-cni.sh"]
securityContext:
......@@ -121,7 +121,7 @@ spec:
name: cni-bin
containers:
- name: cni-server
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0-pre"
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0"
imagePullPolicy: IfNotPresent
command:
- sh
......@@ -216,7 +216,7 @@ spec:
hostPID: true
containers:
- name: pinger
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0-pre"
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0"
command: ["/kube-ovn/kube-ovn-pinger", "--external-address=114.114.114.114"]
imagePullPolicy: IfNotPresent
securityContext:
......
......@@ -39,7 +39,7 @@ spec:
hostNetwork: true
containers:
- name: kube-ovn-controller
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0-pre"
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0"
imagePullPolicy: IfNotPresent
command:
- /kube-ovn/start-controller.sh
......@@ -108,7 +108,7 @@ spec:
hostPID: true
initContainers:
- name: install-cni
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0-pre"
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0"
imagePullPolicy: IfNotPresent
command: ["/kube-ovn/install-cni.sh"]
securityContext:
......@@ -121,7 +121,7 @@ spec:
name: cni-bin
containers:
- name: cni-server
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0-pre"
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0"
imagePullPolicy: IfNotPresent
command:
- sh
......@@ -216,7 +216,7 @@ spec:
hostPID: true
containers:
- name: pinger
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0-pre"
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0"
command: ["/kube-ovn/kube-ovn-pinger", "--external-address=114.114.114.114"]
imagePullPolicy: IfNotPresent
securityContext:
......
......@@ -155,7 +155,7 @@ spec:
hostNetwork: true
containers:
- name: ovn-central
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0-pre"
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0"
imagePullPolicy: IfNotPresent
command: ["/kube-ovn/start-db.sh"]
securityContext:
......@@ -190,6 +190,8 @@ spec:
readOnly: true
- mountPath: /etc/openvswitch
name: host-config-openvswitch
- mountPath: /etc/ovn
name: host-config-ovn
- mountPath: /var/log/openvswitch
name: host-log-ovs
- mountPath: /var/log/ovn
......@@ -209,7 +211,7 @@ spec:
periodSeconds: 7
failureThreshold: 5
nodeSelector:
beta.kubernetes.io/os: "linux"
kubernetes.io/os: "linux"
kube-ovn/role: "master"
volumes:
- name: host-run-ovs
......@@ -224,6 +226,9 @@ spec:
- name: host-config-openvswitch
hostPath:
path: /etc/origin/openvswitch
- name: host-config-ovn
hostPath:
path: /etc/origin/ovn
- name: host-log-ovs
hostPath:
path: /var/log/openvswitch
......@@ -262,7 +267,7 @@ spec:
hostPID: true
containers:
- name: openvswitch
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0-pre"
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0"
imagePullPolicy: IfNotPresent
command: ["/kube-ovn/start-ovs.sh"]
securityContext:
......@@ -312,7 +317,7 @@ spec:
cpu: 1000m
memory: 800Mi
nodeSelector:
beta.kubernetes.io/os: "linux"
kubernetes.io/os: "linux"
volumes:
- name: host-modules
hostPath:
......
......@@ -156,7 +156,7 @@ spec:
hostNetwork: true
containers:
- name: ovn-central
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0-pre"
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0"
imagePullPolicy: IfNotPresent
command: ["/kube-ovn/start-db.sh"]
securityContext:
......@@ -261,7 +261,7 @@ spec:
hostPID: true
containers:
- name: openvswitch
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0-pre"
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0"
imagePullPolicy: IfNotPresent
command: ["/kube-ovn/start-ovs.sh"]
securityContext:
......
......@@ -156,7 +156,7 @@ spec:
hostNetwork: true
containers:
- name: ovn-central
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0-pre"
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0"
imagePullPolicy: IfNotPresent
command: ["/kube-ovn/start-db.sh"]
securityContext:
......@@ -261,7 +261,7 @@ spec:
hostPID: true
containers:
- name: openvswitch
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0-pre"
image: "index.alauda.cn/alaudak8s/kube-ovn:v1.1.0"
imagePullPolicy: IfNotPresent
command: ["/kube-ovn/start-ovs.sh"]
securityContext:
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment