module
0.0.0-20180207163100-6a55101a96e5
Repository: https://github.com/kube-node/nodeset.git
Documentation: pkg.go.dev
# README
Kube-Node / NodeSet
kube-node is a minimalistic API which enables Kubernetes to manage its nodes by itself. The goal is to have a higher abstraction layer for managed k8s nodes and to be able to integrate Kubernetes with different providers in a generic way. It is intended to live outside of core Kubernetes and add optional node management features to Kubernetes clusters.
API Proposal
Deployment
Examples
NodeSet
apiVersion: nodeset.k8s.io/v1alpha1
kind: NodeSet
metadata:
name: my-nodeset
spec:
nodeClass: "nodeclass-do-2gb"
nodeSetController: "default"
replicas: 5
maxUnavailable: 0
maxSurge: 1
NodeClass (For Kube-Machine)
apiVersion: nodeset.k8s.io/v1alpha1
kind: NodeClass
metadata:
name: nodeclass-do-2gb
nodeController: kube-machine
config:
dockerMachineFlags:
digitalocean-access-token: YOUR-DO-TOKEN
digitalocean-image: coreos-stable
digitalocean-private-networking: "true"
digitalocean-region: fra1
digitalocean-size: 2gb
digitalocean-ssh-user: core
provider: digitalocean
provisioning:
commands:
- sudo chmod +x /opt/bin/bootstrap.sh && sudo /opt/bin/bootstrap.sh
- sudo systemctl enable kubelet && sudo systemctl start kubelet
files:
- content: |-
YOUR-BOOTSTRAP-KUBECONFIG
owner: root
path: /etc/kubernetes/bootstrap.kubeconfig
permissions: "0640"
- content: |-
SOME-BOOTSTRAP-BASH-SCRIPT
owner: root
path: /opt/bin/bootstrap.sh
permissions: "0750"
- content: |-
THE-KUBELET-SYSTEMD-UNIT-FILE
owner: root
path: /etc/systemd/system/kubelet.service
permissions: "0640"
users:
- name: apiserver
ssh_keys:
- SOME-SSH-PUBLIC-KEY
sudo: true