Why Kubernetes networking is hard – and what you can do about it

History tells us that networking is always the last piece of the puzzle. From mainframes, to virtual machines, and now with containers, providing compute and storage are the first two steps before the realisation sets in that all these little entities have to all communicate with each other.

For most of the last 30 years, that communication has been facilitated over Ethernet where different ends of a communication at the application layer bind to each other using IP addresses and port numbers. But when those compute pieces shrink to container size, does that necessarily make sense anymore? 

If two containers are sitting on the same physical machine, on the same hypervisor, on the same Docker instance, do you really need to jump all the way out to the NIC to facilitate communication between them?  Does the application layer addressing stay the same?  Is it better to facilitate that communication using an overlay?  Do you do it over L2 or L3?  What about multi-tenancy?

All these questions, and more, is why Kubernetes networking is hard.

Kubernetes networking basics

Before understanding Kubernetes basics, it is useful to understand the limitations of Docker networking that Kubernetes overcomes.  This is not to say Docker networking is inherently evil, it’s just that the scope of the container engine tends to be a single physical or virtual machine so naturally that perspective runs into issues when considering a cluster of container engines that may or may not be spread across multiple physical or virtual machines.

The “Docker model”, as it is known in Kubrentes circles, uses host-private networking by default that creates a virtual bridge and a series of mappings that makes it easy for containers to talk to each other on the same machine.  However, containers on different machines require port allocations and forwards or proxies in order to communicate with each other.

As applications grow in size and utilise a microservices-based application architecture that requires many dozens if not many hundreds of containers spread across multiple machines, this does not scale well.  And, again, to be fair this networking scheme was intended to run on a single machine and it does support a CNM model that enables mulit-host networking but given its original intent it should not be surprising that it struggles with clustering.

The “Kubernetes model” had to not only solve the core clustering issue, but do so in a way that allowed for multiple implementations for different situations and be backward compatible with single node perspectives as well.  The fundamentals of this model are that all containers and nodes can communicate with each other without NAT and the IP address that a container sees itself as is the same IP address that others see it as.

The basic definition of a pod in Kubernetes terminology is that it is “a group of one or more containers with shared storage/network, and a specification for how to run the container.”

So, when containers are within the same pod, they share the same IP and port space and are reachable to each other using localhost.  This satisfies the backward compatibility design goal for single container engine perspectives.

More commonly, though, microservices within an application run in different pods, so they have to discover and reach each other in more complex ways than simply referring to localhost.  This mechanism is abstracted in Kubernetes so that a variety of implementations are possible, but the most popular ones use overlay, underlay, or native L3 approaches.

An overlay approach uses a virtual network that is decoupled from the underlying physical network using some sort of tunnel.  Pods on this virtual network can easily find each other and these L2 networks can be isolated from one another, requiring L3 routing between them when necessary.

An underlay approach attaches an L2 network to the node’s physical NIC, exposing the pod directly to the underlying physical network without port mapping.  Bridge mode can be used here to enable pods to internally interconnect so that the traffic does not leave the host when it doesn’t have to.

A native L3 approach contains no overlays on the data plane, meaning that pod-to-pod communications happen over IP addresses leveraging routing decisions made by node hosts and external network routers.  Pod-to-pod communication can utilize BGP peering to not leave the host and NAT can be used for outgoing traffic if necessary.

The needs and scale of your applications, including what other resources it might need to consume outside the cluster, will guide which networking approach is right for you and each approach has a variety of open source and commercial implementation alternatives.

But Kubernetes is not operating in a vacuum

Rarely does a Kubernetes cluster get deployed in a purely greenfield environment.  Instead, it gets deployed in support of rapid iteration efforts a line-of-business development team is working on to inject innovation into a market alongside existing services in an enterprise that exists on VMs or physical machines. 

As an example – shown here on the right when choosing an overlay approach – should a container on a VM host need to talk to a service elsewhere on the physical network, it now has multiple layers to jump through, each of which may inject different amounts of latency that can degrade performance.  Because these microservices-based applications do not often operate in a vacuum, this needs to be carefully considered when choosing an approach and an implementation and the choice made for one application may differ from that of another in the same portfolio of managed applications.

Why policy-based Kubernetes networking management makes sense

Developers love microservices because it enables them to architect solutions with smaller, more isolated components that talk to each other over APIs.  The APIs act as contracts between the components so as long as those APIs do not change, the components can be deployed independent of one another, making it easier to release more quickly as the search for innovative change iterates over time.

But just like all other underlying infrastructure management, this creates management headaches due the increased complexity that makes those Kubernetes clusters all hum along efficiently.  How many nodes should your cluster have?  What happens when you change your mind later?  How can you manage one cluster that uses overlay networking while another uses native L3 side by side because the multiple applications running on them have slightly different needs?  What governance do you put in place to keep it all consistent and secure?

These questions, and more, will confront a team managing Kubernetes clusters and the pathway to the answers comes from the same form of aspirin that helps soothe other infrastructure management headaches: policy.

Administrators discovered while managing software-defined networks and the virtual machines that sit on top of them, the scale of the number of “things” to be managed manually becomes unsustainable at some point.  With Kubernetes cluster administration, the number of “things” to be managed grows substantially and manual intervention becomes equally unsustainable in this new container cluster universe.  Automating administration and enforcing best practices through policy-based management becomes a clear choice regardless of what specific approaches to Kubernetes networking might be made for individual applications.  Nothing else scales to the task.

So, for the growing list of microservices-based applications you are probably managing and regardless of whether those applications need overlay, underlay, or native L3 networks be sure whatever implementation you choose provides you the option of managing your Kubernetes cluster networking via policy using the appropriate plug-in.  Otherwise, implementing changes and maintaining consistency among clusters will quickly become impossible. But by managing intent with policy automation, you’ll be ready for whatever your applications need.

Read more: Kubernetes takes step up as it ‘graduates’ from Cloud Native Computing Foundation

Q&A: Apay Obang-Oyway, Ingram Micro


Cloud Pro

3 Apr, 2018

What does cloud mean to you and what benefits do you think it brings to businesses?

The interesting thing about cloud doesn’t really have anything to do with the technology, but what it enables you to do. At its heart, it’s about business transformation. It gives organisations the flexibility to react to changing conditions and frees up resources to focus on innovation – rather than on just treading water and keeping the lights on.

Do you think the UK cloud industry has an advantage over other geographies? Are we excelling?

The UK has a deep heritage of technological innovation, and I think we’re leading the way towards the fourth industrial revolution, in relation to cloud, but also a host of other next-generation technologies.

Last year was a record for UK tech investment and London is the technology capital of Europe, but it’s clear the capital doesn’t have a monopoly on tech innovation. We work with innovative technology companies throughout the breadth of the UK, and I think that’s what makes the UK cloud industry so dynamic, but also so sustainable.

What else do you think needs to be done to champion innovation in the UK cloud industry?

There are broadly two elements that need to be looked at to further champion innovation in the UK. The first is digital transformation in the industry, ensuring organisations across all industries have a strategy that they are executing.

The second is centred on building a diverse and vibrant technology talent pool. We have a lot of homegrown talent, but there’s a looming skills shortage in the UK that could stunt innovation in all parts of the industry. This will need to be addressed if we are to stay at the top of our game.

As a country, we need to do more to focus on STEM skills from an earlier age and encourage participation from all parts of society to build a more diverse tech workforce. Additionally, businesses need to invest in upskilling the existing workforce by improving access to dedicated cloud training.

Fresh blood is also important to the on-going health of the industry, so it’s important that we can continue to attract the best possible talent internationally.

Please can you provide a bit more detail for those not familiar with your company?

Ingram Micro Cloud works with thousands of partners in the UK to help them responsibly transform their business through specialism, diversity, and innovation while helping end-users accelerate business outcomes from their technology investments. We’ve got partnerships with the leading innovative technology vendors in the industry, whose services we offer through the Ingram Micro Ecosystem of cloud, which provides partners with the ideal platform to deliver premium cloud solutions to their end customers.

The channel is an integral part of the Ingram Micro ecosystem of cloud and we recognise that we can only succeed as a business if we help our partners succeed. That’s why we invest heavily in our partners, giving them the tools, capabilities, and knowledge they need to deliver transformative cloud solutions to the market.

Why have you decided to get involved with the UK Cloud Awards 2018?

This is the third time we’ve sponsored the UK Cloud Awards and we’ve been big supporters of the event since it was established for the simple reason that, as an industry, we’ve got a lot to celebrate!

What key trends/challenges are you seeing with your customers around cloud?

It’s difficult to generalise. Some end users are already on their second and third wave cloud adoptions and are using cloud to springboard into next-generation technologies, like IoT, AI and Big Data. But many businesses are right in the infancy of their could migration journeys and need more assistance.

The same applies to the channel in some respects, and while some channel partners are leading the way in terms of innovation with a “cloud-first” motion, there’s still a certain amount of education needed to get all partners on the same page.

How is your company helping customers address these challenges?

As a business, it’s important that we can support our partners regardless of their stage of cloud maturity. We help our partners through envisioning, enablement, skills and a leading portfolio of cloud solutions offering within the Ingram Micro Ecosystem of cloud, all of which helps them to succeed. 

How do you think the cloud landscape has evolved in the past five years? 

Acceptance of cloud has grown exponentially, and for many end users, it’s just another way that they do IT. There’s been an enormous uplift in demand for cloud services from end users, which is great, but it’s been a bit of a scramble for the channel to satisfy this growing demand. 

Selling IT-as-a-service is a very different proposition to selling it as an asset, and partners have had to make some significant changes to the way that they operate to accommodate it, changing things like commission structures and upskilling staff to be able to support cloud services.

We’re seeing the partners that have embraced this change doing really well, but it’s going to be increasingly difficult for those in the channel haven’t gone to the cloud – you’ve got to go where your customers are! Ultimately, partners have to understand they are in a services world.

What do you think has driven this shift?

The industry itself has definitely matured, which has helped to drive end-user acceptance, but I think there’s also greater awareness of the business benefits that cloud can deliver. Technology is a key differentiator today, much more so than it was just five years ago, and businesses are starting to recognise that they can’t thrive in the age of disruption by managing their IT in the way that they always have done.

The workforce is increasingly technologically savvy at all levels, and this will continue to contribute to the speed of cloud adoption. Flexibility and agility are the orders of the day in uncertain times, which is exactly what cloud provides. 

What other trends and patterns do you see around cloud computing and related technologies?

Cloud is the gateway to a whole host of other technologies, and you can’t begin to explore things like IoT and Big Data in a way that is economically viable without cloud. We have been speaking about the IoT and Big Data for quite some time but, up until very recently, they have been the reserve of only the largest enterprises with enough available capital to invest in the computing resources needed to power them.

Cloud infrastructure, which offers the opportunity to successfully rent these flexible and scalable resources, effectively democratises the IoT and Big Data and lowers the barriers to entry for all organisations looking to exploit these technologies.

What role do you see cloud playing in business life a year or five years from now?

All of the upcoming technologies – AI, machine learning, quantum computing progress, the IoT, chatbots, robotics – will grow and develop, with cloud driving them. The channel absolutely needs to understand their role in the next generation of key technologies and to identify and realise the opportunities available to them. 

There are some businesses that are quite comfortable with where they are, and others who know they want to accelerate with the cloud. But only those who recognise how important it is to play a role in the future intelligence of cloud will truly thrive.

Paint for Mac using Parallels Desktop

Question: Is there a Microsoft Paint for Mac®? Answer: There is no MS Paint program for Mac, BUT there are a couple options. You can explore the similar Mac Paint programs, OR get Paint on Mac with Parallels Desktop® for Mac. Option 1: Use Mac Paint alternatives. One option that already exists on your Mac […]

The post Paint for Mac using Parallels Desktop appeared first on Parallels Blog.

Microservices at @CloudExpo | @IBMcloud @CloudTroll #AI #SDN #CloudNative #DevOps #Microservices

We all know that end users experience the Internet primarily with mobile devices. From an app development perspective, we know that successfully responding to the needs of mobile customers depends on rapid DevOps – failing fast, in short, until the right solution evolves in your customers’ relationship to your business. Whether you’re decomposing an SOA monolith, or developing a new application cloud natively, it’s not a question of using microservices – not doing so will be a path to eventual business failure.

read more

Cloud Evolution at @CloudExpo | @IBMcloud‏ @_Considine #Cloud #DataCenter #DigitalTransformation

In his Opening Keynote at 21st Cloud Expo, John Considine, General Manager of IBM Cloud Infrastructure, led attendees through the exciting evolution of the cloud. He looked at this major disruption from the perspective of technology, business models, and what this means for enterprises of all sizes. John Considine is General Manager of Cloud Infrastructure Services at IBM. In that role he is responsible for leading IBM’s public cloud infrastructure including strategy, development, and offering management. To date, IBM has launched more than 50 cloud data centers that span the globe. He has been building advanced technology, delivering “as a service” solutions, and managing infrastructure services for the past 20 years.

read more

[video] Value Stream Management | @ExpoDX @CollabNet #AI #CloudNative #Serverless

I think DevOps is now a rambunctious teenager – it’s starting to get a mind of its own, wanting to get its own things but it still needs some adult supervision,» explained Thomas Hooker, VP of marketing at CollabNet, in this SYS-CON.tv interview at DevOps Summit at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.

read more

Dr. Max Keynote at @CloudEXPO NY | @IBMcloud #AI #CloudNative #Serverless

Michael Maximilien, better known as max or Dr. Max, is a computer scientist with IBM. At IBM Research Triangle Park, he was a principal engineer for the worldwide industry point-of-sale standard: JavaPOS. At IBM Research, some highlights include pioneering research on semantic Web services, mashups, and cloud computing, and platform-as-a-service. He joined the IBM Cloud Labs in 2014 and works closely with Pivotal Inc., to help make the Cloud Found the best PaaS.

read more

Sponsorship Opportunities Open | @CloudEXPO #AI #CloudNative #DevOps #Serverless #FinTech

CloudEXPO | DXWorldEXPO are the world’s most influential, independent events where Cloud Computing was coined and where technology buyers and vendors meet to experience and discuss the big picture of Digital Transformation and all of the strategies, tactics, and tools they need to realize their goals. Sponsors of DXWorldEXPO | CloudEXPO benefit from unmatched branding, profile building and lead generation opportunities.

read more

Dell EMC to Present Nov 12-13 at @CloudEXPO NY | @DellEMC #BigData #AI #IoT #IIoT #ArtificialIntelligence

Bill Schmarzo, author of «Big Data: Understanding How Data Powers Big Business» and «Big Data MBA: Driving Business Strategies with Data Science,» is responsible for setting the strategy and defining the Big Data service offerings and capabilities for EMC Global Services Big Data Practice. As the CTO for the Big Data Practice, he is responsible for working with organizations to help them identify where and how to start their big data journeys. He’s written several white papers, is an avid blogger and is a frequent speaker on the use of Big Data and data science to power the organization’s key business initiatives. He is a University of San Francisco School of Management (SOM) Executive Fellow where he teaches the «Big Data MBA» course. Bill was ranked as #15 Big Data Influencer by Onalytica.

read more

Speaking Opportunities at @DevOpsSummit 2018 | #CloudNative #CloudNative #DevOps #Serverless #APM #Monitoring

DevOpsSummit New York 2018, colocated with CloudEXPO | DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City.
Digital Transformation (DX) is a major focus with the introduction of DXWorldEXPO within the program. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term.

read more