is calico really needed for our labs?
Hi, I'm at lab 4 and I read about CNI plugins.
As far as I understood they are providing different features to enhance the k8s networking for pod-to-pod communications. I also read that k8s provides a built-in solution for the same matter: kubenet. Is it correct to say that kubenet is a basic CNI plugin w/ limited features?
If so, at least up to lab 4, is calico plugin that has been installed through the k8sMaster script really needed?
Comments
-
Hi @crixo,
You are correct, kubenet has limited features and it does not support network policies.
In labs 6 and 7, where network policies are explored, you will need a CNI plugin which supports network policies - such as calico.
While you may be able to use a basic plugin for the rest of the labs, for 6 and 7 you will need a more advanced plugin which supports network policies.
Regards,
-Chris0 -
Hi @chrispokorni,
reading k8s documentation "kubeadm only supports Container Network Interface (CNI) based networks (and does not support kubenet)": does that means I cannot use kubeadm unless I use a CNI plugin?In case is possible to use kubeadm w/o any CNI plugin, how should be the "kubeadm init" commnand?
Since I'm not planning to use calico, I tried to run "sudo kubeadm init --kubernetes-version 1.12.1" w/o any --pod-network-cidr, but "kubectl taint nodes --all node.kubernetes.io/not-ready-" does not working anymore...that's all about trying to run the lab and kubeadm on azure VMs...
0 -
Hi @crixo ,
Right above that statement is another one, which in my opinion should have been bolded as well:You must install a pod network add-on so that your pods can communicate with each other.
By attempting to initialize a cluster without a network plugin, you are removing the solution to a fundamental requirement of Kubernetes: the Pod-to-Pod networking. Without a network plugin, your pods will not receive that single IP they are expecting, thus will not be able to talk to one another across the cluster.
Some more reading on k8s networking.
Regards,
-Chris0 -
Hi @chrispokorni,
I perfectly understood your sentenceBy attempting to initialize a cluster without a network plugin, you are removing the solution to a fundamental requirement of Kubernetes: the Pod-to-Pod networking. Without a network plugin, your pods will not receive that single IP they are expecting, thus will not be able to talk to one another across the cluster.
And that's totally inline w/ k8s documentation I shared in my previous post.
Said so, I probably misunderstood your first replay to my initial post
While you may be able to use a basic plugin for the rest of the labs, for 6 and 7 you will need a more advanced plugin which supports network policies.
kubenet does NOT seem to be an option to work w/ kubeadm. Using kubeadm to setup a (multi-node) cluster, you DEFINITELY need a CNI plugin listed here or there
If my last sentence is correct, I still need to figure out which one works fine w/ azure.
I found this option azure-vnet
but I'm not sure how to use it along with kubeadm. I read some of the CNI plugin does require the option "--pod-network-cidr" others don't, not sure about azure-vnet. Is azure-vnet an alternative to CNI plugin listed on the k8s documentation? If so, why is not directly listed there as well?0 -
Hello,
There are many possible permutations for network plugins, which vary according to the underlying network architecture. To my knowledge five new SDN controllers have been added in the past year so there is a lot of new options in addition to the change in existing dynamic projects.
Some folks leverage infiniband, some 10G ethernet. Each change brings its own configuration, advantages, possible disadvantages, and troubleshooting process. As a result the labs have been written and tested to work with kubeadm, Calico for a network plugin, and running on GCE. We have done some testing to ensure that AWS and VirtualBox may work, but these are not the primary focus and not what we regularly test and debug. Even with this more narrow configuration there is much change and constant need for troubleshooting and updates.
Regards,
0 -
Hi @crixo ,
The azure-vnet documentation does say this:Azure VNET plugins are designed to work with Azure Container Service.
... and it does not say anything about kubeadm. Also the Kubernetes documentation does not include it, as it mentions that it is not an exhaustive list of networking options - meaning there may be others out there. And considering the rate at which Kubernetes advances and all the projects around Kubernetes, it is nearly impossible to have a complete list at any given time.
Based on calico documentation, the Azure IPAM plugin should work with calico on Azure? It does not say how it would fit in with kubeadm however, but it may work.Regards,
-Chris0 -
Hi @chrispokorni,
Based on calico documentation, the Azure IPAM plugin should work with calico on Azure? It does not say how it would fit in with kubeadm however, but it may work.
If I understood, your suggestion is to keep the current calico installation as per k8sMaster.sh and add, on top of that, the installation of Azure IPAM plugin. The "kubeadm init" remains the same having the "--pod-network-cidr" including the calico range
"sudo kubeadm init --kubernetes-version 1.12.1 --pod-network-cidr 192.168.0.0/16"Thanks a lot for you support, I really appreciate it
0 -
Hi @serewicz, I understand your point and i also understand the effort required to keep up w/ all k8s world changes.
Having a solution working for the 2 major cloud provider is a great support for the course, I wonder if it's possible to include also azure considering its large adoption within the developer community and the availability of free/testing account.0 -
Hello,
I am unaware of any plans at the moment to begin an Azure track to the LFD259 labs. I'll pass along the suggestion.
Regards,
0 -
@crixo Did you manage to configure Azure-Vnet within your k8s cluster? I tried this and it broke networking for my cluster (I was not able to schedule Pods on the workers).
That is what I had once Azure-Vnet is installed.sa@ub16:~$ ls /etc/cni/net.d 10-azure.conflist 10-calico.conflist calico-kubeconfig
and
sa@ub16:~$ cat /etc/cni/net.d/10-azure.conflist { "cniVersion":"0.3.0", "name":"azure", "plugins":[ { "type":"azure-vnet", "mode":"bridge", "bridge":"azure0", "ipam":{ "type":"azure-vnet-ipam" } }, { "type":"portmap", "capabilities":{ "portMappings":true }, "snat":true } ] }
0 -
Hi @vasyhin,
Check out a solution posted by @crixo, and see if it helps:https://forum.linuxfoundation.org/discussion/855882/labs-on-azure#latest
Regards,
-Chris0
Categories
- All Categories
- 207 LFX Mentorship
- 207 LFX Mentorship: Linux Kernel
- 734 Linux Foundation IT Professional Programs
- 339 Cloud Engineer IT Professional Program
- 166 Advanced Cloud Engineer IT Professional Program
- 66 DevOps Engineer IT Professional Program
- 132 Cloud Native Developer IT Professional Program
- 122 Express Training Courses
- 122 Express Courses - Discussion Forum
- 5.9K Training Courses
- 40 LFC110 Class Forum - Discontinued
- 66 LFC131 Class Forum
- 39 LFD102 Class Forum
- 222 LFD103 Class Forum
- 17 LFD110 Class Forum
- 34 LFD121 Class Forum
- 17 LFD133 Class Forum
- 6 LFD134 Class Forum
- 17 LFD137 Class Forum
- 70 LFD201 Class Forum
- 3 LFD210 Class Forum
- 2 LFD210-CN Class Forum
- 2 LFD213 Class Forum - Discontinued
- 128 LFD232 Class Forum - Discontinued
- 1 LFD233 Class Forum
- 3 LFD237 Class Forum
- 23 LFD254 Class Forum
- 689 LFD259 Class Forum
- 110 LFD272 Class Forum
- 3 LFD272-JP クラス フォーラム
- 10 LFD273 Class Forum
- 111 LFS101 Class Forum
- LFS111 Class Forum
- 2 LFS112 Class Forum
- 1 LFS116 Class Forum
- 3 LFS118 Class Forum
- 3 LFS142 Class Forum
- 3 LFS144 Class Forum
- 3 LFS145 Class Forum
- 1 LFS146 Class Forum
- 2 LFS147 Class Forum
- 8 LFS151 Class Forum
- 1 LFS157 Class Forum
- 17 LFS158 Class Forum
- 5 LFS162 Class Forum
- 1 LFS166 Class Forum
- 3 LFS167 Class Forum
- 1 LFS170 Class Forum
- 1 LFS171 Class Forum
- 2 LFS178 Class Forum
- 2 LFS180 Class Forum
- 1 LFS182 Class Forum
- 4 LFS183 Class Forum
- 30 LFS200 Class Forum
- 737 LFS201 Class Forum - Discontinued
- 2 LFS201-JP クラス フォーラム
- 17 LFS203 Class Forum
- 118 LFS207 Class Forum
- 1 LFS207-DE-Klassenforum
- LFS207-JP クラス フォーラム
- 301 LFS211 Class Forum
- 55 LFS216 Class Forum
- 50 LFS241 Class Forum
- 44 LFS242 Class Forum
- 37 LFS243 Class Forum
- 13 LFS244 Class Forum
- 1 LFS245 Class Forum
- 45 LFS250 Class Forum
- 1 LFS250-JP クラス フォーラム
- LFS251 Class Forum
- 146 LFS253 Class Forum
- LFS254 Class Forum
- LFS255 Class Forum
- 6 LFS256 Class Forum
- LFS257 Class Forum
- 1.2K LFS258 Class Forum
- 9 LFS258-JP クラス フォーラム
- 116 LFS260 Class Forum
- 156 LFS261 Class Forum
- 41 LFS262 Class Forum
- 82 LFS263 Class Forum - Discontinued
- 15 LFS264 Class Forum - Discontinued
- 11 LFS266 Class Forum - Discontinued
- 23 LFS267 Class Forum
- 18 LFS268 Class Forum
- 29 LFS269 Class Forum
- 200 LFS272 Class Forum
- 1 LFS272-JP クラス フォーラム
- LFS274 Class Forum
- 3 LFS281 Class Forum
- 7 LFW111 Class Forum
- 257 LFW211 Class Forum
- 180 LFW212 Class Forum
- 12 SKF100 Class Forum
- SKF200 Class Forum
- SKF201 Class Forum
- 791 Hardware
- 199 Drivers
- 68 I/O Devices
- 37 Monitors
- 98 Multimedia
- 174 Networking
- 91 Printers & Scanners
- 85 Storage
- 754 Linux Distributions
- 82 Debian
- 67 Fedora
- 16 Linux Mint
- 13 Mageia
- 23 openSUSE
- 147 Red Hat Enterprise
- 31 Slackware
- 13 SUSE Enterprise
- 351 Ubuntu
- 465 Linux System Administration
- 39 Cloud Computing
- 71 Command Line/Scripting
- Github systems admin projects
- 91 Linux Security
- 78 Network Management
- 101 System Management
- 47 Web Management
- 56 Mobile Computing
- 17 Android
- 28 Development
- 1.2K New to Linux
- 1K Getting Started with Linux
- 366 Off Topic
- 114 Introductions
- 171 Small Talk
- 20 Study Material
- 534 Programming and Development
- 293 Kernel Development
- 223 Software Development
- 1.2K Software
- 212 Applications
- 182 Command Line
- 3 Compiling/Installing
- 405 Games
- 312 Installation
- 79 All In Program
- 79 All In Forum
Upcoming Training
-
August 20, 2018
Kubernetes Administration (LFS458)
-
August 20, 2018
Linux System Administration (LFS301)
-
August 27, 2018
Open Source Virtualization (LFS462)
-
August 27, 2018
Linux Kernel Debugging and Security (LFD440)