Skip to content

Instantly share code, notes, and snippets.

@alexellis
Last active July 15, 2020 08:31
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexellis/f4b4ba7412b0e0568b73a6903a4478bd to your computer and use it in GitHub Desktop.
Save alexellis/f4b4ba7412b0e0568b73a6903a4478bd to your computer and use it in GitHub Desktop.
Insiders Update: 21st June 2020 - Exploring Kubernetes 1.18, major updates for arkade and openfaas

Welcome to this week's Insiders Update! Insiders gain exclusive access to early previews, tutorials, updates, news, and events on my OSS work.

🐳 Become an Insider or Subscribe today 👉 through GitHub

Insiders Update: 21st June 2020 - Exploring Kubernetes 1.18, major updates for arkade and openfaas

Webinar - exploring K8s 1.18

This week I gave two webinars for clients including one on bare-metal and Packet's Tinkerbell project and Exploring Kubernetes 1.18 - a technical deep-drive hosted by Sysdig.

Exploring Kubernetes 1.18

In my webinar for Sysdig there were four areas of Kubernetes 1.18 I explored:

  • 1 - What happened to kubectl run?
  • 2 - How is Ingress changing?
  • 3 - How do you use kubectl debug?
  • 4 - Immutable Secrets

Two of the new Kubernetes features require a "FeatureGate" to be enabled and I presented how to do this for both KinD and k3s.

In the kubectl debug example I also covered my favourite tools like kubectl logs / kubectl events and the -w (watch) and -o yaml (output) options for getting objects.

Ingress

Conceptual flow of Ingress

For the Ingress segment I gave a full example of how to use Kubernetes Ingress with arkade. You can get the YAML files here for a test microservice.

As a subscriber benefit I'm offering direct access to the original full-quality PDF for the presentation, free, without having to register or sign-up.

If you'd like to view the recording, you can register with Sysdig for access to view on the on24 platform.

Project updates

arkade

arkade gained a new get command which can be used to download popular CLI tools.

How does this differ from using a package manage like brew or apt? arkade gets the appropriate binary for your operating system and CPU (Intel or ARM) directly from the upstream releases page of a project. It bypasses the need to update and synchronise package lists and is lightning fast.

Let's face it, most of us install kubectl by trawling the Kubernetes documentation for a curl or wget statement right?

Here's what you can do as of today:

arkade get kubectl
arkade get kubectx
arkade get faas-cli
arkade get helm

That's it - you're now fully loaded-up with pretty much all you're going to need. And for anything missing like k9s, you can simply submit an issue or send us a PR to the arkade repo.

I'm proud to say that the latest release of arkade, which you can get as of today as contributions and patches from 5 different contributors from around the world 🍻 This is especially encouraging for me as the maintainer of this OSS project.

We also have several new apps for arkade including redis, loki and openfaas-loki. When you combine the two loki apps, all of your OpenFaaS logs will be stored for long-term storage and fast querying (faster than our default when we query the kubelet).

OpenFaaS - loki for fast logs

The new Loki app and openfaas-loki app can be combined to provide fast access to logs from OpenFaaS functions and a longer retention policy than the default which is to query the Kubernetes API.

To install simply run:

arkade update

# If you don't have openfaas yet:
arkade install openfaas

# This installs Grafana to view logs in the built-in UI
arkade install loki --grafana

# Add the log provider to OpenFaaS
arkade install openfaas-loki

From there you can grab the faas-cli, deploy a function, invoke it and then get its logs back:

# Download with arkade ✅
arkade get faas-cli 

faas-cli store deploy nodeinfo
echo | faas-cli invoke nodeinfo

faas-cli logs nodeinfo

You should notice that the logs come back considerably quicker.

OpenFaaS - New Kubernetes Go client for Kubernetes 1.18

The OpenFaaS controller aka faas-netes has had a major update to support Kubernetes 1.18 and to automatically generate its YAML CRD files.

View the release notes on GitHub, and feel free to ask us any questions on Slack.

OpenFaaS - Profiles are coming soon for Pod customisation

In our next release you will also see support for customisation of the function's Pod spec in Kubernetes, such as when you want to add tolerations, affinity rules and runtime classes such as gVisor or kata containers.

For example:

Imagine you have a tainted node-pool with the function-pool key, and want only your functions to run there. You would add this CR to your cluster:

apiVersion: openfaas.com/v1
kind: Profile
metadata:
  name: tolerate-function-pool
spec:
  tolerations:
  - key: "function-pool"
    operator: "Exists"
    effect: "NoSchedule"

And then deploy your functions with an annotation of com.openfaas.profile: tolerate-function-pool.

Subscribe to this new feature here: Feature - Profile support for taints, tolerations, anti/affinity and hardware #586

OpenFaaS - faasd is in the news

Show Hacker News Front page

Show Hacker News Front page

Our newest way to run OpenFaaS is called faasd. faasd has gained popularity because it means you can avoid Kubernetes and Docker and simply benefit from running functions.

Got questions? Wondering how faasd scales? Read my introduction on the openfaas.com blog

Are you a faasd user already? Update to the latest version for important fixes on the ordering of loading images.

See also: faasd releases

OpenFaaS - from Twitter - Deutsche Telekom puts openfaas into production

From Twitter:

OSS is weird. You never truly know who's using it and for what. Until they post a job spec on @LinkedIn saying it's a core part of their stack. If you know someone on the team, it would be nice to have a PR to our ADOPTERS file

Advert on LinkedIn

The Deutsche Telekom advert on LinkedIn

If you're using OpenFaaS, please send us a PR to the ADOPTERS file.

OpenFaaS sponsorship launch!

You can now sponsor the OpenFaaS project directly through GitHub Sponsors. This is a way to directly help the efforts dedicated to the project.

OpenFaaS on GitHub

If we can reach a goal of 10k USD / mo, then it's likely that OpenFaaS Ltd can hire someone full-time to help users, develop features, and to keep new technical content coming.

Thanks to RateHub for being the first to step up with a 500 USD / mo sponsorship.

Note: Sponsors of OpenFaaS will not receive Insiders Updates or benefits.

Wrapping up

I hope that you've enjoyed your weekend. As you get ready for the week ahead, feel free to stop by and connect with the OpenFaaS Community:

Finally, until the end of day on Monday 22nd June, you can get 10% off any items in the OpenFaaS Ltd store including personal licenses for inlets PRO. Use code TEAMOSS

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment