73

GitHub - ibuildthecloud/k3s: 5 less then k8s. Short for kates, pronounced k8s

 5 years ago
source link: https://github.com/ibuildthecloud/k3s
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md

Kubernetes

logo.png


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
    • rbac/v1beta1
    • settings/v1alpha1
    • storage/v1alpha1
  • Authentication
    • bootstrap token
    • oidc
    • webhook
  • Authorization
    • ABAC
  • Cloud Providers (all of them)
  • Controllers
    • Bootstrap
    • Certificates
    • Cloud
    • Cluster Role Aggregation
    • Cloud based node IPAM
    • Replication
    • Route
  • Credential Providers AWS/GCP/Azure/Rancher
  • Kubelet
    • Device Plugin
    • Certificates
    • Checkpoint
    • Device Manager
    • Custom Metrics
    • Dockershim
    • 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
  • etcd (yeah, i'm using sqlite3)

Build

# First have sane GOPATH, hopefully you know how to do that
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')" | sed 's!rbac.authorization.k8s.io/v1beta1!rbac.authorization.k8s.io/v1!g' | ./kubectl apply -f -

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

Enjoy.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK