This repository has been archived by the owner on Mar 9, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 348
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Mike Brown <[email protected]>
- Loading branch information
Showing
2 changed files
with
176 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,173 @@ | ||
CRICTL User Guide | ||
================= | ||
This document presumes you already have `containerd` and `cri-containerd` | ||
installed and running. | ||
|
||
This document is for developers who wish to debug, inspect, and manage their pods, | ||
containers, and container images. | ||
|
||
Before generating issues against this document, `containerd`, `cri-containerd`, | ||
or `crictl` please make sure the issue has not already been submitted. | ||
|
||
## Install crictl | ||
If you have not already installed crictl please install the version compatible | ||
with the `cri-containerd` you are using. If you are a user, your deployment | ||
should have installed crictl for you. If not, get it from your release tarball. | ||
If you are a developer the current version of crictl is specified [here](./hack/version). | ||
A helper command has been included to install the dependencies at the right version: | ||
```console | ||
$ make install.deps | ||
``` | ||
* Note: The file named `/etc/crictl.yaml` is used to configure crictl | ||
so you don't have to repeatedly specify the runtime sock used to connect crictl | ||
to the container runtime: | ||
```console | ||
$ cat /etc/crictl.yaml | ||
runtime-endpoint: /run/containerd/containerd.sock | ||
image-endpoint: /run/containerd/containerd.sock | ||
timeout: 10 | ||
debug: true | ||
``` | ||
|
||
## Download and Inspect a Container Image | ||
```console | ||
$ crictl pull busybox | ||
... | ||
$ crictl inspecti busybox | ||
... displays information about the image. | ||
``` | ||
## Run a pod sandbox (using a config file) | ||
```console | ||
$ cat sandbox-config.json | ||
{ | ||
"metadata": { | ||
"name": "nginx-sandbox", | ||
"namespace": "default", | ||
"attempt": 1, | ||
"uid": "hdishd83djaidwnduwk28bcsb" | ||
}, | ||
"linux": { | ||
} | ||
} | ||
|
||
$ crictl runs sandbox-config.json | ||
e1c83b0b8d481d4af8ba98d5f7812577fc175a37b10dc824335951f52addbb4e | ||
$ crictl sandboxes | ||
SANDBOX ID CREATED STATE NAME NAMESPACE ATTEMPT | ||
e1c83b0b8d481 2 hours ago SANDBOX_READY nginx-sandbox default 1 | ||
$ crictl inspects e1c8 | ||
... displays information about the pod and the sandbox pause container. | ||
``` | ||
* Note: As shown above, you may use truncated IDs if they are unique. | ||
* Other commands to manage the pod include `stops ID` to stop a running pod and | ||
`rms ID` to remove a pod sandbox. | ||
|
||
## Create and Run a Container in a Sandbox (using a config file) | ||
```console | ||
$ cat sandbox-config.json | ||
{ | ||
"metadata": { | ||
"name": "nginx-sandbox", | ||
"namespace": "default", | ||
"attempt": 1, | ||
"uid": "hdishd83djaidwnduwk28bcsb" | ||
}, | ||
"linux": { | ||
} | ||
} | ||
|
||
$ cat container-config.json | ||
{ | ||
"metadata": { | ||
"name": "busybox" | ||
}, | ||
"image":{ | ||
"image": "busybox" | ||
}, | ||
"command": [ | ||
"top" | ||
], | ||
"linux": { | ||
} | ||
} | ||
|
||
$ crictl create e1c83 container-config.json sandbox-config.json | ||
0a2c761303163f2acaaeaee07d2ba143ee4cea7e3bde3d32190e2a36525c8a05 | ||
$ crictl ps | ||
CONTAINER ID IMAGE CREATED STATE NAME ATTEMPT | ||
0a2c761303163 docker.io/busybox 2 hours ago CONTAINER_CREATED busybox 0 | ||
$ crictl start 0a2c | ||
0a2c761303163f2acaaeaee07d2ba143ee4cea7e3bde3d32190e2a36525c8a05 | ||
$ crictl ps | ||
CONTAINER ID IMAGE CREATED STATE NAME ATTEMPT | ||
0a2c761303163 docker.io/busybox 2 hours ago CONTAINER_RUNNING busybox 0 | ||
$ crictl inspect 0a2c7 | ||
... show detailed information about the container | ||
``` | ||
## Exec a Command in the Container | ||
```console | ||
$ crictl exec -i -t 0a2c ls | ||
bin dev etc home proc root sys tmp usr var | ||
``` | ||
## Display Stats for the Container | ||
```console | ||
$ crictl stats | ||
CONTAINER CPU % MEM DISK INODES | ||
0a2c761303163f 0.00 991.2kB 16.38kB 6 | ||
``` | ||
* Other commands to manage the container include `stop ID` to stop a running | ||
container and `rm ID` to remove a container. | ||
## Display Version Information | ||
```console | ||
$ crictl version | ||
Version: 0.1.0 | ||
RuntimeName: cri-containerd | ||
RuntimeVersion: 1.0.0-alpha.1-167-g737efe7-dirty | ||
RuntimeApiVersion: 0.0.0 | ||
``` | ||
## Display Status & Configuration Information about Containerd & CRI-Containerd | ||
```console | ||
$ crictl info | ||
{ | ||
"status": { | ||
"conditions": [ | ||
{ | ||
"type": "RuntimeReady", | ||
"status": true, | ||
"reason": "", | ||
"message": "" | ||
}, | ||
{ | ||
"type": "NetworkReady", | ||
"status": true, | ||
"reason": "", | ||
"message": "" | ||
} | ||
] | ||
}, | ||
"config": { | ||
"containerd": { | ||
"rootDir": "/var/lib/containerd", | ||
"snapshotter": "overlayfs", | ||
"endpoint": "/run/containerd/containerd.sock", | ||
"runtime": "io.containerd.runtime.v1.linux" | ||
}, | ||
"cni": { | ||
"binDir": "/opt/cni/bin", | ||
"confDir": "/etc/cni/net.d" | ||
}, | ||
"socketPath": "/var/run/cri-containerd.sock", | ||
"rootDir": "/var/lib/cri-containerd", | ||
"streamServerPort": "10010", | ||
"sandboxImage": "gcr.io/google_containers/pause:3.0", | ||
"statsCollectPeriod": 10, | ||
"oomScore": -999, | ||
"enableProfiling": true, | ||
"profilingPort": "10011", | ||
"profilingAddress": "127.0.0.1" | ||
} | ||
} | ||
``` | ||
## More Information | ||
See [here](https://github.com/kubernetes-incubator/cri-tools/blob/master/docs/crictl.md) | ||
for information about crictl. |