Categorygithub.com/ibuildthecloud/k3s-dev
repository
1.13.3-k3s2
Repository: https://github.com/ibuildthecloud/k3s-dev.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

Kubernetes


Kubernetes without the features I don't care about.

Some of the removed features

  • OpenAPI/Swagger
  • cloud-controller-manager
  • kube aggregation
  • APIs (NOTE: most of these are old APIs that have been replaced)
    • admissionregistration/v1alpha1, authentication/v1beta1, authorization/v1beta1, certificates/v1beta1, events/v1beta1, imagepolicy/v1alpha1, rbac/v1alpha1, settings/v1alpha1, storage/v1alpha1,
  • Authentication
    • bootstrap token, oidc
  • Authorization
    • ABAC
  • All alpha features
  • Cloud Providers (all of them)
  • Controllers
    • Bootstrap
    • Certificates
    • Cloud
    • Cloud based node IPAM
    • Route
  • Credential Providers AWS/GCP/Azure/Rancher
  • Kubelet
    • Device Plugin
    • Certificates
    • Checkpoint
    • Device Manager
    • Custom Metrics
    • Dockershim (IMPORTANT: No docker support, the only runtime that works in containerd)
    • GPU
    • Mount Pod
    • Network
      • Hairpin
      • Kubenet
    • rkt
  • Volume Drivers
    • aws_ebs, azure_dd, azure_file, cephfs, cinder, fc, flocker, gce_pd, glusterfs, iscsi, photon_pd, portworx, quobyte, rbd, scaleio, storageos, vsphere_volume
  • Admission Controllers
    • admin, alwayspullimages, antiaffinity, defaulttolerationseconds, deny, eventratelimit, exec, extendedresourcetoleration, gc, imagepolicy, initialreosurces, limitranger, namespace, noderestriction, persistentvolume, podnodeselector, podpreset, podtolerationrestriction, priority, resourcequota, security, securitycontext, storageobjectinuseprotection

What is left? A lot. Basically all your normal pod/deployment/service stuff is there. Most apps for kubernetes will run just fine.

Full Build

# Setup your GOPATH.  Note that this code should be at k8s.io/kubernetes in your GOPATH, not github.com/ibuildthecloud/k3s
go build -o kubectl ./cmd/kubectl
go build -o hyperkube ./cmd/hyperkube

Now just run hyperkube as you normally would.

Super Opinionated Approach that probably won't work for you

# Setup your GOPATH.  Note that this code should be at k8s.io/kubernetes in your GOPATH, not github.com/ibuildthecloud/k3s
go build -o k3s
go build -o kubectl ./cmd/kubectl

Run

Run containerd

# Download and install containerd and runc
sudo curl -fL -o /usr/local/bin/runc https://github.com/opencontainers/runc/releases/download/v1.0.0-rc5/runc.amd64
sudo chmod +x /usr/local/bin/runc

curl -fsL https://github.com/containerd/containerd/releases/download/v1.1.1/containerd-1.1.1.linux-amd64.tar.gz | sudo tar xvf /usr/src/containerd.tgz -C /usr/local/bin bin/ --strip-components=1

# Some CNI
sudo mkdir -p /opt/cni/bin
curl -fsL https://github.com/containernetworking/plugins/releases/download/v0.7.1/cni-plugins-amd64-v0.7.1.tgz  | sudo tar xvzf - -C /opt/cni/bin ./loopback

sudo containerd &

Run Kubernetes

# Server
./k3s

# Agent (If doing this on another host copy the ./data folder)
sudo ./k3s agent

# Install Networking
export KUBECONFIG=./data/cred/kubeconfig.yaml
curl -s "https://cloud.weave.works/k8s/net?k8s-version=$(./kubectl version | base64 | tr -d '\n')" | ./kubectl apply -f -

Your kubeconfig file is in ./data/cred/kubeconfig.yaml

Enjoy.