Releases: Nordix/xcluster
Enable VLAN
This is just a new Linux kernel with support for VLAN.
Download and replace the one in $XCLUSTER_WORKSPACE/xcluster/bzImage
.
Removed bzImage<->disk-image relation
Init ramfs
The bzImage
in this release can be used with older (and future) disk-images. The problem before was that the kernel modules on the disk-image must match the version of the kernel. In this release the bzImage contains an initramfs with it's modules. On boot these modules are copied to the disk-image before "init" is called. This may result in double module directories;
# ls /lib/modules
5.3.0/ 5.4.2/
Workspace
The separate release file with the xcluster
"workspace" is removed in this release. It was just duplication of data. If xcluster
is cloned from github (should be the normal case really) then please take the initial workspace from xcluster/workspace
in the release file and discard the rest.
No coredns pod in k8s
Mostly an upgrade of tests to reflect that the coredns
POD was removed from k8s. Instead of a pod instances of coredns are now started in main netns on nodes. There was a problem with source address for responses described here.
Kernel 5.3.0
K8s 1.16.0 and sctp support
Only tested on Ubuntu 18.04.3 LTS
Please see the quick-start instruction on how to start k8s with dual-stack.
SCTP is supported in this release, please the ovl/k8s-sctp.
Kernel; 5.3.0
K8s dual-stack
Only tested on Ubuntu 18.04.
Start
Verify that kvm
is installed and can be used and install dependencies if necessary;
kvm-ok
id # (you must be member of the "kvm" group)
sudo apt install -y xterm pxz genisoimage jq # (if necessary)
To get a k8s cluster with dual-stack running do;
XCDIR=$HOME/tmp # Change to your preference
mkdir -p $XCDIR
cd $XCDIR
curl -L https://github.com/Nordix/xcluster/releases/download/v2.2/xcluster-v2.2.tar.xz | tar xJ
cd $XCDIR/xcluster
. ./Envsettings.k8s
armurl=http://artifactory.nordix.org/artifactory/cloud-native
curl -L $armurl/xcluster/images/hd-k8s.img.xz | xz -d > $__image
xc mkcdrom k8s-dual-stack
xc start # (no xterms? See below) (use "xc starts" to start without xterms)
Try;
vm 2 # Opens a terminal on vm-002
# In the terminal (on cluster) test things, for example;
kubectl get nodes # (may take ~10 sec to appear)
kubectl get node vm-002 -o json | jq .spec # "podCIDRs" is dual-stack
kubectl -o json get pods -l 'app=coredns' | jq .items[0].status.podIPs
nslookup www.google.se # (doesn't work? See below)
wget -4 -O /dev/null http://www.google.se # (doesn't work? See below)
# Traffic test with mconnect
kubectl apply -f /etc/kubernetes/mconnect-dual.yaml # (image is pre-pulled)
kubectl get svc
assign-lb-ip -svc mconnect; assign-lb-ip -svc mconnect-ipv6
kubectl get svc
mconnect -address mconnect.default.svc.xcluster:5001 -nconn 100
mconnect -address mconnect-ipv6.default.svc.xcluster:5001 -nconn 100
No xterms? Start with "xtermopt=-hold xc start" to keep the window. See also the troubleshooting doc
Nslookup doesn't work? See DNS-troubleshooting
External access does not work (wget http://www.google.se)? Check you host firewall settings. If this does not work then images can not be loaded from external sites (docker.io).
Read more here.
New kernel version
Kernel version; linux-5.1.7
Note the k8s image must match this version.
Break out k8s
The reason for the stepped major version is that k8s images are no longer included in the binary release. Instead the k8s images must be downloaded as described in the wiki.
Also systemd
is removed from the "k8s" images so the systemd ovl must be omitted when "mkcdrom" is called for k8s images, for instance when buiding a ipv6/k8s cluster.
Kernel version; linux-5.0.0
.
With k3s
Dewberry
- Kernel; 5.0.0
- K8s; v1.14.0-rc.1
The main reason for this release is that libs already on the image are excluded for commands like xc cplib
and xc install_prog
. A file with libs already on the image is included by default in $XCLUSTER_WORKSPACE/xcluster/base-libs.txt
. The problem was that if an ovl added the same libs but built differently (e.g. when running on Ubunty 16) programs and even the kernel could crash. The problem is reduced with this fix but may happen for other libs as well. If you want to include all libs specify --base-libs=/dev/null
to the command. This may be necessary if you use xc
to build a container rather than an ovl. Test;
xc libs /bin/ls
xc libs --base-libs=/dev/null /bin/ls