Little helper to run CNCF's k3s in Docker
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
k3d/README.md

55 lines
2.0 KiB

6 years ago
# k3d
6 years ago
[![Build Status](https://travis-ci.com/iwilltry42/k3d.svg?branch=master)](https://travis-ci.com/iwilltry42/k3d)
[![Go Report Card](https://goreportcard.com/badge/github.com/iwilltry42/k3d)](https://goreportcard.com/report/github.com/iwilltry42/k3d)
6 years ago
## k3s in docker
k3s is the lightweight Kubernetes distribution by Rancher: [rancher/k3s](https://github.com/rancher/k3s)
6 years ago
6 years ago
This repository is basically [zeerorg/k3s-in-docker](https://github.com/zeerorg/k3s-in-docker) reimplemented in Golang with some different/new functionality... just because I didn't have time to learn Rust.
6 years ago
6 years ago
Thanks to @zeerorg for the original work!
6 years ago
## Requirements
- docker
## Install
You have several options there:
6 years ago
- use the install script to grab the latest release:
6 years ago
- wget: `wget -q -O - https://raw.githubusercontent.com/iwilltry42/k3d/master/install.sh | bash`
- curl: `curl -s https://raw.githubusercontent.com/iwilltry42/k3d/master/install.sh | bash`
- Grab a release from the [release tab](https://github.com/iwilltry42/k3d/releases) and install it yourself.
- Via go: `go install github.com/iwilltry42/k3d`
6 years ago
or...
## Build
6 years ago
1. Clone this repo, e.g. via `go get -u github.com/iwilltry42/k3d/releases`
6 years ago
2. Inside the repo run
- `make` to build for your current system
6 years ago
- `go install` to install it to your `GOPATH`
- `make build-cross` to build for all systems
## Usage
Check out what you can do via `k3d help`
Example Workflow: Create a new cluster and use it with `kubectl`
1. `k3d create` to create a new single-node cluster (docker container)
2. `export KUBECONFIG=$(k3d get-kubeconfig)` to make `kubectl` to use the kubeconfig for that cluster
3. execute some commands like `kubectl get pods --all-namespaces`
4. `k3d delete` to delete the default cluster
## TODO
6 years ago
- [ ] Use the docker client library instead of commands
- [ ] Test the docker version
- [ ] Improve cluster state management
- [ ] Use [sirupsen/logrus](https://github.com/sirupsen/logrus) for prettier logs
- [ ] Add install script