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
  • SonarQube - Static code analysis for 29 languages.
  • InfluxDB - Collect and Analyze Billions of Data Points in Real Time
  • Mergify - Tired of breaking your main and manually rebasing outdated pull requests?
  • 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

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • 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

    [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

    [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

    Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.

  • 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