mirror of https://github.com/k3d-io/k3d
Merge pull request #63 from rancher/refactor-docs
[Docs] Prepare for proper documentationpull/48/head v1.2.2-beta.0
commit
3947baf3bb
@ -0,0 +1,25 @@ |
|||||||
|
# Documentation |
||||||
|
|
||||||
|
## Functionality |
||||||
|
|
||||||
|
```shell |
||||||
|
COMMANDS: |
||||||
|
check-tools, ct Check if docker is running |
||||||
|
create, c Create a single- or multi-node k3s cluster in docker containers |
||||||
|
delete, d, del Delete cluster |
||||||
|
stop Stop cluster |
||||||
|
start Start a stopped cluster |
||||||
|
list, ls, l List all clusters |
||||||
|
get-kubeconfig Get kubeconfig location for cluster |
||||||
|
help, h Shows a list of commands or help for one command |
||||||
|
|
||||||
|
GLOBAL OPTIONS: |
||||||
|
--verbose Enable verbose output |
||||||
|
--help, -h show help |
||||||
|
--version, -v print the version |
||||||
|
``` |
||||||
|
|
||||||
|
|
||||||
|
## Compatibility with `k3s` functionality/options |
||||||
|
|
||||||
|
... under construction ... |
@ -0,0 +1,81 @@ |
|||||||
|
# Examples |
||||||
|
|
||||||
|
## Expose services |
||||||
|
|
||||||
|
### 1. via Ingress |
||||||
|
|
||||||
|
1. Create a cluster, mapping the ingress port 80 to localhost:8081 |
||||||
|
|
||||||
|
`k3d create --api-port 6550 --publish 8081:80 --workers 2` |
||||||
|
|
||||||
|
- Note: `--api-port 6550` is not required for the example to work. It's used to have `k3s`'s ApiServer listening on port 6550 with that port mapped to the host system. |
||||||
|
|
||||||
|
2. Get the kubeconfig file |
||||||
|
|
||||||
|
`export KUBECONFIG="$(k3d get-kubeconfig --name='k3s-default')"` |
||||||
|
|
||||||
|
3. Create a nginx deployment |
||||||
|
|
||||||
|
`kubectl create deployment nginx --image=nginx` |
||||||
|
|
||||||
|
4. Create a ClusterIP service for it |
||||||
|
|
||||||
|
`kubectl create service clusterip nginx --tcp=80:80` |
||||||
|
|
||||||
|
5. Create an ingress object for it with `kubectl apply -f` |
||||||
|
|
||||||
|
```YAML |
||||||
|
apiVersion: extensions/v1beta1 |
||||||
|
kind: Ingress |
||||||
|
metadata: |
||||||
|
name: nginx |
||||||
|
annotations: |
||||||
|
ingress.kubernetes.io/ssl-redirect: "false" |
||||||
|
spec: |
||||||
|
rules: |
||||||
|
- http: |
||||||
|
paths: |
||||||
|
- path: / |
||||||
|
backend: |
||||||
|
serviceName: nginx |
||||||
|
servicePort: 80 |
||||||
|
``` |
||||||
|
|
||||||
|
6. Curl it via localhost |
||||||
|
|
||||||
|
`curl localhost:8081/` |
||||||
|
|
||||||
|
### 2. via NodePort |
||||||
|
|
||||||
|
1. Create a cluster, mapping the port 30080 from worker-0 to localhost:8082 |
||||||
|
|
||||||
|
`k3d create --publish 8082:30080@k3d-k3s-default-worker-0 --workers 2` |
||||||
|
|
||||||
|
- Note: Kubernetes' default NodePort range is [`30000-32767`](https://kubernetes.io/docs/concepts/services-networking/service/#nodeport) |
||||||
|
|
||||||
|
... (Steps 2 and 3 like above) ... |
||||||
|
|
||||||
|
1. Create a NodePort service for it with `kubectl apply -f` |
||||||
|
|
||||||
|
```YAML |
||||||
|
apiVersion: v1 |
||||||
|
kind: Service |
||||||
|
metadata: |
||||||
|
labels: |
||||||
|
app: nginx |
||||||
|
name: nginx |
||||||
|
spec: |
||||||
|
ports: |
||||||
|
- name: 80-80 |
||||||
|
nodePort: 30080 |
||||||
|
port: 80 |
||||||
|
protocol: TCP |
||||||
|
targetPort: 80 |
||||||
|
selector: |
||||||
|
app: nginx |
||||||
|
type: NodePort |
||||||
|
``` |
||||||
|
|
||||||
|
2. Curl it via localhost |
||||||
|
|
||||||
|
`curl localhost:8082/` |
@ -0,0 +1,4 @@ |
|||||||
|
# FAQ / Nice to know |
||||||
|
|
||||||
|
- As [@jaredallard](https://github.com/jaredallard) [pointed out](https://github.com/rancher/k3d/pull/48), people running `k3d` on a system with **btrfs**, may need to mount `/dev/mapper` into the nodes for the setup to work. |
||||||
|
- This will do: `k3d create -v /dev/mapper:/dev/mapper` |
Loading…
Reference in new issue