KWOK : mettre en place un cluster de milliers de nœuds en quelques secondes …

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • kwok

    Kubernetes WithOut Kubelet - Simulates thousands of Nodes and Clusters.

  • GitHub - kubernetes-sigs/kwok: Kubernetes WithOut Kubelet - Simulates thousands of Nodes and Clusters.

  • k0s

    k0s - The Zero Friction Kubernetes

  • root@localhost:~# curl -sSLf https://get.k0s.sh | sudo sh Downloading k0s from URL: https://github.com/k0sproject/k0s/releases/download/v1.25.4+k0s.0/k0s-v1.25.4+k0s.0-amd64 k0s is now executable in /usr/local/bin root@localhost:~# k0s install controller --single root@localhost:~# k0s start root@localhost:~# k0s status Version: v1.25.4+k0s.0 Process ID: 1064 Role: controller Workloads: true SingleNode: true Kube-api probing successful: true Kube-api probing last error: root@localhost:~# k0s kubectl cluster-info Kubernetes control plane is running at https://localhost:6443 CoreDNS is running at https://localhost:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. 443/TCP 97s root@localhost:~# k0s kubectl get nodes -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME localhost Ready control-plane 100s v1.25.4+k0s 172.105.131.23 Ubuntu 22.04.1 LTS 5.15.0-47-generic containerd://1.6.9 root@localhost:~# curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.25.4/bin/linux/amd64/kubectl && chmod +x kubectl && mv kubectl /usr/bin/ % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 42.9M 100 42.9M 0 0 75.2M 0 --:--:-- --:--:-- --:--:-- 75.3M root@localhost:~# k0s kubeconfig admin > ~/.kube/config root@localhost:~# type kubectl kubectl is hashed (/usr/bin/kubectl) root@localhost:~# kubectl get po,svc -A NAMESPACE NAME READY STATUS RESTARTS AGE kube-system pod/kube-proxy-clxh7 1/1 Running 0 3m56s kube-system pod/kube-router-88x25 1/1 Running 0 3m56s kube-system pod/coredns-5d5b5b96f9-4xzsl 1/1 Running 0 4m3s kube-system pod/metrics-server-69d9d66ff8-fxrt7 1/1 Running 0 4m2s NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE default service/kubernetes ClusterIP 10.96.0.1 443/TCP 4m20s kube-system service/kube-dns ClusterIP 10.96.0.10 53/UDP,53/TCP,9153/TCP 4m8s kube-system service/metrics-server ClusterIP 10.98.18.100 443/TCP 4m2s

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • kui

    A hybrid command-line/UI development experience for cloud-native development

  • GitHub - kubernetes-sigs/kui: A hybrid command-line/UI development experience for cloud-native development

  • kubeshark

    The API traffic analyzer for Kubernetes providing real-time K8s protocol-level visibility, capturing and monitoring all traffic and payloads going in, out and across containers, pods, nodes and clusters. Inspired by Wireshark, purposely built for Kubernetes

  • GitHub - kubeshark/kubeshark: The API traffic viewer for Kubernetes providing deep visibility into all API traffic and payloads going in, out and across containers and pods inside a Kubernetes cluster. Think TCPDump and Wireshark re-invented for Kubernetes

  • fake-kubelet

    Discontinued [Moved to https://github.com/kubernetes-sigs/kwok] This is a fake kubelet. that can simulate any number of nodes and maintain pods on those nodes. It is useful for test control plane.

  • root@localhost:~# fake-k8s create cluster --name c1 Creating cluster "fake-k8s-c1" Download https://dl.k8s.io/release/v1.24.1/bin/linux/amd64/kubectl ############################################################| 100% 0s Download https://dl.k8s.io/release/v1.24.1/bin/linux/amd64/kube-apiserver ############################################################| 100% 1s Download https://dl.k8s.io/release/v1.24.1/bin/linux/amd64/kube-controller-manager ############################################################| 100% 6s Download https://dl.k8s.io/release/v1.24.1/bin/linux/amd64/kube-scheduler ############################################################| 100% 0s Download https://github.com/wzshiming/fake-kubelet/releases/download/v0.7.4/fake-kubelet_linux_amd64 ############################################################| 100% 2s Download https://github.com/etcd-io/etcd/releases/download/v3.5.4/etcd-v3.5.4-linux-amd64.tar.gz ############################################################| 100% 1s Starting cluster "fake-k8s-c1" Wait for cluster "fake-k8s-c1" to be ready Cluster "fake-k8s-c1" is ready > kubectl --context fake-k8s-c1 get node NAME STATUS ROLES AGE VERSION fake-0 Ready agent 1s fake fake-1 Ready agent 1s fake fake-2 Ready agent 1s fake fake-3 Ready agent 1s fake fake-4 Ready agent 1s fakeou un second … root@localhost:~# fake-k8s create cluster --name c2 Creating cluster "fake-k8s-c2" Starting cluster "fake-k8s-c2" Wait for cluster "fake-k8s-c2" to be ready Cluster "fake-k8s-c2" is ready > kubectl --context fake-k8s-c2 get node NAME STATUS ROLES AGE VERSION fake-0 Ready agent 0s fake fake-1 Ready agent 0s fake fake-2 Ready agent 0s fake fake-3 Ready agent 0s fake fake-4 Ready agent 0s fake root@localhost:~# fake-k8s get clusters c1 c2

  • fake-k8s

    Discontinued [Moved to https://github.com/kubernetes-sigs/kwok] fake-k8s is a tool for running Fake Kubernetes clusters, It can be used as an alternative to Kind in some scenarios where you don’t need to actually run the Pod

  • GitHub - wzshiming/fake-k8s: [Move to https://github.com/kubernetes-sigs/kwok] fake-k8s is a tool for running Fake Kubernetes clusters, It can be used as an alternative to Kind in some scenarios where you don't need to actually run the Pod

  • etcd

    Distributed reliable key-value store for the most critical data of a distributed system

  • root@localhost:~# fake-k8s create cluster --name c1 Creating cluster "fake-k8s-c1" Download https://dl.k8s.io/release/v1.24.1/bin/linux/amd64/kubectl ############################################################| 100% 0s Download https://dl.k8s.io/release/v1.24.1/bin/linux/amd64/kube-apiserver ############################################################| 100% 1s Download https://dl.k8s.io/release/v1.24.1/bin/linux/amd64/kube-controller-manager ############################################################| 100% 6s Download https://dl.k8s.io/release/v1.24.1/bin/linux/amd64/kube-scheduler ############################################################| 100% 0s Download https://github.com/wzshiming/fake-kubelet/releases/download/v0.7.4/fake-kubelet_linux_amd64 ############################################################| 100% 2s Download https://github.com/etcd-io/etcd/releases/download/v3.5.4/etcd-v3.5.4-linux-amd64.tar.gz ############################################################| 100% 1s Starting cluster "fake-k8s-c1" Wait for cluster "fake-k8s-c1" to be ready Cluster "fake-k8s-c1" is ready > kubectl --context fake-k8s-c1 get node NAME STATUS ROLES AGE VERSION fake-0 Ready agent 1s fake fake-1 Ready agent 1s fake fake-2 Ready agent 1s fake fake-3 Ready agent 1s fake fake-4 Ready agent 1s fakeou un second … root@localhost:~# fake-k8s create cluster --name c2 Creating cluster "fake-k8s-c2" Starting cluster "fake-k8s-c2" Wait for cluster "fake-k8s-c2" to be ready Cluster "fake-k8s-c2" is ready > kubectl --context fake-k8s-c2 get node NAME STATUS ROLES AGE VERSION fake-0 Ready agent 0s fake fake-1 Ready agent 0s fake fake-2 Ready agent 0s fake fake-3 Ready agent 0s fake fake-4 Ready agent 0s fake root@localhost:~# fake-k8s get clusters c1 c2

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Puts Debuggerer

    Ruby library for improved puts debugging, automatically displaying bonus useful information such as source line number and source code.

  • root@localhost:~# curl -sSLf https://get.k0s.sh | sudo sh Downloading k0s from URL: https://github.com/k0sproject/k0s/releases/download/v1.25.4+k0s.0/k0s-v1.25.4+k0s.0-amd64 k0s is now executable in /usr/local/bin root@localhost:~# k0s install controller --single root@localhost:~# k0s start root@localhost:~# k0s status Version: v1.25.4+k0s.0 Process ID: 1064 Role: controller Workloads: true SingleNode: true Kube-api probing successful: true Kube-api probing last error: root@localhost:~# k0s kubectl cluster-info Kubernetes control plane is running at https://localhost:6443 CoreDNS is running at https://localhost:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. 443/TCP 97s root@localhost:~# k0s kubectl get nodes -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME localhost Ready control-plane 100s v1.25.4+k0s 172.105.131.23 Ubuntu 22.04.1 LTS 5.15.0-47-generic containerd://1.6.9 root@localhost:~# curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.25.4/bin/linux/amd64/kubectl && chmod +x kubectl && mv kubectl /usr/bin/ % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 42.9M 100 42.9M 0 0 75.2M 0 --:--:-- --:--:-- --:--:-- 75.3M root@localhost:~# k0s kubeconfig admin > ~/.kube/config root@localhost:~# type kubectl kubectl is hashed (/usr/bin/kubectl) root@localhost:~# kubectl get po,svc -A NAMESPACE NAME READY STATUS RESTARTS AGE kube-system pod/kube-proxy-clxh7 1/1 Running 0 3m56s kube-system pod/kube-router-88x25 1/1 Running 0 3m56s kube-system pod/coredns-5d5b5b96f9-4xzsl 1/1 Running 0 4m3s kube-system pod/metrics-server-69d9d66ff8-fxrt7 1/1 Running 0 4m2s NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE default service/kubernetes ClusterIP 10.96.0.1 443/TCP 4m20s kube-system service/kube-dns ClusterIP 10.96.0.10 53/UDP,53/TCP,9153/TCP 4m8s kube-system service/metrics-server ClusterIP 10.98.18.100 443/TCP 4m2s

  • docker-install

    Docker installation script

  • root@localhost:~# systemctl stop k0scontroller root@localhost:~# k0s reset WARN[2022-11-20 22:02:24] To ensure a full reset, a node reboot is recommended. root@localhost:~# curl -fsSL https://get.docker.com | sh - # Executing docker install script, commit: 4f282167c425347a931ccfd95cc91fab041d414f + sh -c apt-get update -qq >/dev/null + sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null + sh -c mkdir -p /etc/apt/keyrings && chmod -R 0755 /etc/apt/keyrings + sh -c curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" | gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg + sh -c chmod a+r /etc/apt/keyrings/docker.gpg + sh -c echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable" > /etc/apt/sources.list.d/docker.list + sh -c apt-get update -qq >/dev/null + sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-scan-plugin >/dev/null + version_gte 20.10 + [-z] + return 0 + sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker-ce-rootless-extras >/dev/null + sh -c docker version Client: Docker Engine - Community Version: 20.10.21 API version: 1.41 Go version: go1.18.7 Git commit: baeda1f Built: Tue Oct 25 18:01:58 2022 OS/Arch: linux/amd64 Context: default Experimental: true Server: Docker Engine - Community Engine: Version: 20.10.21 API version: 1.41 (minimum version 1.12) Go version: go1.18.7 Git commit: 3056208 Built: Tue Oct 25 17:59:49 2022 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.6.10 GitCommit: 770bd0108c32f3fb5c73ae1264f7e503fe7b2661 runc: Version: 1.1.4 GitCommit: v1.1.4-0-g5fd4c4d docker-init: Version: 0.19.0 GitCommit: de40ad0 ================================================================================ To run Docker as a non-privileged user, consider setting up the Docker daemon in rootless mode for your user: dockerd-rootless-setuptool.sh install Visit https://docs.docker.com/go/rootless/ to learn about rootless mode. To run the Docker daemon as a fully privileged service, but granting non-root users access, refer to https://docs.docker.com/go/daemon-access/ WARNING: Access to the remote API on a privileged Docker daemon is equivalent to root access on the host. Refer to the 'Docker daemon attack surface' documentation for details: https://docs.docker.com/go/attack-surface/ ================================================================================ root@localhost:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts