mirror of
https://github.com/namibia/awesome-cheatsheets.git
synced 2024-12-22 18:18:55 +00:00
refactor(docs): convert .sh file to .md
This commit is contained in:
parent
b35cf4043d
commit
00918e7080
179
tools/kubernetes.md
Normal file
179
tools/kubernetes.md
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
# Kubernetes
|
||||||
|
|
||||||
|
* PDF: https://sematext.com/kubernetes-cheat-sheet/
|
||||||
|
* WEBSITE: https://kubernetes.io/
|
||||||
|
* DOCUMENTATION: https://kubernetes.io/docs/home
|
||||||
|
|
||||||
|
## Client Configuration
|
||||||
|
|
||||||
|
* Setup autocomplete in bash; bash-completion package should be installed first
|
||||||
|
```
|
||||||
|
source <(kubectl completion bash)
|
||||||
|
```
|
||||||
|
|
||||||
|
* View Kubernetes config
|
||||||
|
```
|
||||||
|
kubectl config view
|
||||||
|
```
|
||||||
|
|
||||||
|
* View specific config items by json path
|
||||||
|
```
|
||||||
|
kubectl config view -o jsonpath='{.users[?(@.name == "k8s")].user.password}'
|
||||||
|
```
|
||||||
|
|
||||||
|
* Set credentials for `foo.kuberntes.com`
|
||||||
|
```
|
||||||
|
kubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword
|
||||||
|
```
|
||||||
|
|
||||||
|
* Set active namespace
|
||||||
|
```
|
||||||
|
kubectl config set-context --current --namespace=namespace_name
|
||||||
|
```
|
||||||
|
|
||||||
|
## Viewing, Finding resources
|
||||||
|
|
||||||
|
* List all services in the namespace
|
||||||
|
```
|
||||||
|
kubectl get services
|
||||||
|
```
|
||||||
|
|
||||||
|
* List all pods in all namespaces in wide format
|
||||||
|
```
|
||||||
|
kubectl get pods -o wide --all-namespaces
|
||||||
|
```
|
||||||
|
|
||||||
|
* List all pods in json (or yaml) format
|
||||||
|
```
|
||||||
|
kubectl get pods -o json
|
||||||
|
```
|
||||||
|
|
||||||
|
* Describe resource details (node, pod, svc)
|
||||||
|
```
|
||||||
|
kubectl describe nodes my-node
|
||||||
|
```
|
||||||
|
|
||||||
|
* List services sorted by name
|
||||||
|
```
|
||||||
|
kubectl get services --sort-by=.metadata.name
|
||||||
|
```
|
||||||
|
|
||||||
|
* List pods sorted by restart count
|
||||||
|
```
|
||||||
|
kubectl get pods --sort-by='.status.containerStatuses[0].restartCount'
|
||||||
|
```
|
||||||
|
|
||||||
|
* Rolling update pods for frontend-v1
|
||||||
|
```
|
||||||
|
kubectl rolling-update frontend-v1 -f frontend-v2.json
|
||||||
|
```
|
||||||
|
|
||||||
|
* Scale a replicaset named 'foo' to 3
|
||||||
|
```
|
||||||
|
kubectl scale --replicas=3 rs/foo
|
||||||
|
```
|
||||||
|
|
||||||
|
* Scale a resource specified in "foo.yaml" to 3
|
||||||
|
```
|
||||||
|
kubectl scale --replicas=3 -f foo.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
* Execute a command in every pod / replica
|
||||||
|
```
|
||||||
|
for i in 0 1; do kubectl exec foo-$i -- sh -c 'echo $(hostname) > /usr/share/nginx/html/index.html'; done
|
||||||
|
```
|
||||||
|
|
||||||
|
## Manage Resources
|
||||||
|
|
||||||
|
* Get documentation for pod or service
|
||||||
|
```
|
||||||
|
kubectl explain pods,svc
|
||||||
|
```
|
||||||
|
|
||||||
|
* Create resource(s) like pods, services or daemonsets
|
||||||
|
```
|
||||||
|
kubectl create -f ./my-manifest.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
* Apply a configuration to a resource
|
||||||
|
```
|
||||||
|
kubectl apply -f ./my-manifest.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
* Start a single instance of Nginx
|
||||||
|
```
|
||||||
|
kubectl run nginx --image=nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
* Create a secret with several keys
|
||||||
|
```
|
||||||
|
cat <<EOF | kubectl create -f -
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: mysecret
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
password: $(echo "s33msi4" | base64)
|
||||||
|
username: $(echo "jane"| base64)
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
* Delete a resource
|
||||||
|
```
|
||||||
|
kubectl delete -f ./my-manifest.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
## Monitoring & Logging
|
||||||
|
|
||||||
|
* Deploy Heapster from Github repository
|
||||||
|
```
|
||||||
|
kubectl create -f deploy/kube-config/standalone/
|
||||||
|
```
|
||||||
|
|
||||||
|
* Show metrics for nodes
|
||||||
|
```
|
||||||
|
kubectl top node
|
||||||
|
```
|
||||||
|
|
||||||
|
* Show metrics for pods
|
||||||
|
```
|
||||||
|
kubectl top pod
|
||||||
|
```
|
||||||
|
|
||||||
|
* Show metrics for a given pod and its containers
|
||||||
|
```
|
||||||
|
kubectl top pod pod_name --containers
|
||||||
|
```
|
||||||
|
|
||||||
|
* Dump pod logs (stdout)
|
||||||
|
```
|
||||||
|
kubectl logs pod_name
|
||||||
|
```
|
||||||
|
|
||||||
|
* Stream pod container logs (stdout, multi-container case)
|
||||||
|
```
|
||||||
|
kubectl logs -f pod_name -c my-container
|
||||||
|
```
|
||||||
|
|
||||||
|
## Interacting with running pods
|
||||||
|
|
||||||
|
* Run command in pod
|
||||||
|
```
|
||||||
|
kubectl exec pod_name -- command_name
|
||||||
|
```
|
||||||
|
|
||||||
|
* Run command in pod with multiple containers
|
||||||
|
```
|
||||||
|
kubectl exec pod_name -c container_name -- command_name
|
||||||
|
```
|
||||||
|
|
||||||
|
* Get terminal of pod
|
||||||
|
```
|
||||||
|
kubectl exec -it pod_name /bin/sh
|
||||||
|
```
|
||||||
|
|
||||||
|
* Get terminal of a container running in pod with multiple containers
|
||||||
|
```
|
||||||
|
kubectl exec -it pod_name -c container_name /bin/sh
|
||||||
|
```
|
@ -1,137 +0,0 @@
|
|||||||
##############################################################################
|
|
||||||
# KUBERNETES
|
|
||||||
# PDF: https://sematext.com/kubernetes-cheat-sheet/
|
|
||||||
# WEBSITE: https://kubernetes.io/
|
|
||||||
# DOCUMENTATION: https://kubernetes.io/docs/home
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
# CLIENT CONFIGURATION
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
|
|
||||||
# Setup autocomplete in bash; bash-completion package should be installed first
|
|
||||||
source <(kubectl completion bash)
|
|
||||||
|
|
||||||
# View Kubernetes config
|
|
||||||
kubectl config view
|
|
||||||
|
|
||||||
# View specific config items by json path
|
|
||||||
kubectl config view -o jsonpath='{.users[?(@.name == "k8s")].user.password}'
|
|
||||||
|
|
||||||
# Set credentials for foo.kuberntes.com
|
|
||||||
kubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword
|
|
||||||
|
|
||||||
# Set active namespace
|
|
||||||
kubectl config set-context --current --namespace=namespace_name
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
# VIEWING, FINDING RESOURCES
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
|
|
||||||
# List all services in the namespace
|
|
||||||
kubectl get services
|
|
||||||
|
|
||||||
# List all pods in all namespaces in wide format
|
|
||||||
kubectl get pods -o wide --all-namespaces
|
|
||||||
|
|
||||||
# List all pods in json (or yaml) format
|
|
||||||
kubectl get pods -o json
|
|
||||||
|
|
||||||
# Describe resource details (node, pod, svc)
|
|
||||||
kubectl describe nodes my-node
|
|
||||||
|
|
||||||
# List services sorted by name
|
|
||||||
kubectl get services --sort-by=.metadata.name
|
|
||||||
|
|
||||||
# List pods sorted by restart count
|
|
||||||
kubectl get pods --sort-by='.status.containerStatuses[0].restartCount'
|
|
||||||
|
|
||||||
# Rolling update pods for frontend-v1
|
|
||||||
kubectl rolling-update frontend-v1 -f frontend-v2.json
|
|
||||||
|
|
||||||
# Scale a replicaset named 'foo' to 3
|
|
||||||
kubectl scale --replicas=3 rs/foo
|
|
||||||
|
|
||||||
# Scale a resource specified in "foo.yaml" to 3
|
|
||||||
kubectl scale --replicas=3 -f foo.yaml
|
|
||||||
|
|
||||||
# Execute a command in every pod / replica
|
|
||||||
for i in 0 1; do kubectl exec foo-$i -- sh -c 'echo $(hostname) > /usr/share/nginx/html/index.html'; done
|
|
||||||
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
# MANAGE RESOURCES
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
|
|
||||||
# Get documentation for pod or service
|
|
||||||
kubectl explain pods,svc
|
|
||||||
|
|
||||||
# Create resource(s) like pods, services or daemonsets
|
|
||||||
kubectl create -f ./my-manifest.yaml
|
|
||||||
|
|
||||||
# Apply a configuration to a resource
|
|
||||||
kubectl apply -f ./my-manifest.yaml
|
|
||||||
|
|
||||||
# Start a single instance of Nginx
|
|
||||||
kubectl run nginx --image=nginx
|
|
||||||
|
|
||||||
# Create a secret with several keys
|
|
||||||
cat <<EOF | kubectl create -f -
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: mysecret
|
|
||||||
type: Opaque
|
|
||||||
data:
|
|
||||||
password: $(echo "s33msi4" | base64)
|
|
||||||
username: $(echo "jane"| base64)
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Delete a resource
|
|
||||||
kubectl delete -f ./my-manifest.yaml
|
|
||||||
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
# MONITORING & LOGGING
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
|
|
||||||
# Deploy Heapster from Github repository
|
|
||||||
kubectl create -f deploy/kube-config/standalone/
|
|
||||||
|
|
||||||
# Show metrics for nodes
|
|
||||||
kubectl top node
|
|
||||||
|
|
||||||
# Show metrics for pods
|
|
||||||
kubectl top pod
|
|
||||||
|
|
||||||
# Show metrics for a given pod and its containers
|
|
||||||
kubectl top pod pod_name --containers
|
|
||||||
|
|
||||||
# Dump pod logs (stdout)
|
|
||||||
kubectl logs pod_name
|
|
||||||
|
|
||||||
# Stream pod container logs (stdout, multi-container case)
|
|
||||||
kubectl logs -f pod_name -c my-container
|
|
||||||
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
# INTERACTING WITH RUNNING PODS
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
|
|
||||||
# Run command in pod
|
|
||||||
kubectl exec pod_name -- command_name
|
|
||||||
|
|
||||||
# Run command in pod with multiple containers
|
|
||||||
kubectl exec pod_name -c container_name -- command_name
|
|
||||||
|
|
||||||
# Get terminal of pod
|
|
||||||
kubectl exec -it pod_name /bin/sh
|
|
||||||
|
|
||||||
# Get terminal of a container running in pod with multiple containers
|
|
||||||
kubectl exec -it pod_name -c container_name /bin/sh
|
|
Loading…
Reference in New Issue
Block a user