HWE Kernel causes incompatable behavior with Kubernetes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux-meta-hwe-5.4 (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
This is a follow up from a bug that I filed for Kubernetes: https:/
**What happened**:
I'm running Kubernetes on my Ubuntu 18.04 systems. Kubernetes is installed via Rancher (RKE).
My Kubernetes 1.17 cluster (and Kubernetes 1.16 cluster) has 40-50 firewall rules that say `[unsupported revision]`. I am concerned this will cause problems with
```
# iptables-save
...
-A KUBE-SEP-
-A KUBE-SEP-
-A KUBE-SEP-
-A KUBE-SEP-
-A KUBE-SEP-
-A KUBE-SEP-
```
**What you expected to happen**:
I expect these firewall rules to be valid, like so:
```
# iptables-save
...
-A KUBE-SEP-
-A KUBE-SEP-
-A KUBE-SEP-
-A KUBE-SEP-
-A KUBE-SEP-
-A KUBE-SEP-
```
**How to reproduce it (as minimally and precisely as possible)**:
1. Allocate a worker node
1. Install Ubuntu 18.04.5
2. Install Kubernetes with Canal
* I'm using Rancher & RKE, and I assume this happens with vanilla versions of Kubernetes as well.
3. Install the Ubuntu LTS Hardware Enablement (HWE) kernel via https:/
4. Reboot
5. When the system comes back online & Docker is running, look for invalid iptables rules as shown above.
** Environment **
- 18.04.5 LTS (Bionic Beaver)
- Kernel - Linux cntest13 5.4.0-48-generic #52~18.04.1-Ubuntu SMP Thu Sep 10 12:50:22 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux\
- Kubernetes 1.17.11 - Installed via RKE
- Canal version: rancher/
- Docker version: 18.9.9
Happens with both Bare Metal and VM systems:
- Bare metal nodes - AMD EPYC 7452 32-Core Processor, large memory, multiple NICs to different networks
- VMs on VMware vSphere
Default iptables version:
```
# iptables --version
iptables v1.6.1
# ls -ld `which iptables`
lrwxrwxrwx 1 root root 13 Nov 12 2017 /sbin/iptables -> xtables-multi
#
```
ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: linux-generic-
ProcVersionSign
Uname: Linux 5.4.0-48-generic x86_64
ApportVersion: 2.20.9-0ubuntu7.18
Architecture: amd64
Date: Tue Oct 13 19:19:20 2020
ProcEnviron:
TERM=xterm-
PATH=(custom, no user)
XDG_RUNTIME_
LANG=en_US
SHELL=/bin/bash
SourcePackage: linux-meta-hwe-5.4
UpgradeStatus: No upgrade log present (probably fresh install)
This appears to be a bug with Ubuntu, not Kubernetes. Kube-proxy is reponsible for managing these rules.
The rules inside the container appear fine even though they show an error on the host.
On the host:
``` AAAREDACTED1 - [0:0] AAAREDACTED1 -s 10.99.99.190/32 -j KUBE-MARK-MASQ AAAREDACTED1 -p tcp -m tcp -j DNAT [unsupported revision] 123REDACTEDABC -j KUBE-SEP- AAAREDACTED1
root@docker1:~# iptables-save | grep AAAREDACTED1
:KUBE-SEP-
-A KUBE-SEP-
-A KUBE-SEP-
-A KUBE-SVC-
root@docker1:/#
```
Inside the container:
``` AAAREDACTED1 - [0:0] AAAREDACTED1 -s 10.99.99.190/32 -j KUBE-MARK-MASQ AAAREDACTED1 -p tcp -m tcp -j DNAT --to-destination 10.99.99.190:24231 123REDACTEDABC -j KUBE-SEP- AAAREDACTED1
root@docker1:~# docker exec -it kube-proxy bash
root@docker1:/# iptables-save | grep AAAREDACTED1
:KUBE-SEP-
-A KUBE-SEP-
-A KUBE-SEP-
-A KUBE-SVC-
root@docker1:/#
```