example/

directory
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 18, 2024 License: Apache-2.0

README

k8 basic

entire context list

kubectl config get-contexts

set default context and name space

kubectl config use-context docker-desktop

create a namespace and set it as default

kubectl create namespace ksong kubectl config set-context --current --namespace=ksong kubectl config set-context --current --namespace=default

get k8 capacity

kubectl top nodes kubectl describe nodes

entire node list

kubectl get nodes

deploy app

kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 kubectl create deployment cache-client --image=localhost:5001/cache-client

list deployment

kubectl get deployments

check deployment status

kubectl rollout status deployment/kubernetes-bootcamp kubectl rollout status deployments

describe deployment

kubectl describe deployment kubectl describe deployments/kubernetes-bootcamp kubectl describe deployments/fib

remove deployment

kubectl delete deployment kubernetes-bootcamp kubectl delete deployments/fib

list pods

kubectl get pods

read/set name of pod

export POD_NAME="$(kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}')";echo Name of the Pod: $POD_NAME

log pod

kubectl logs $POD_NAME

get env of pod

kubectl exec "$POD_NAME" -- env

ssh to pod

kubectl exec -ti $POD_NAME -- bash

run proxy

kubectl proxy

get services

kubectl get services

service details

kubectl describe services/kubernetes-bootcamp kubectl describe services/fib

create a service

kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080 kubectl expose deployment/fib --type="NodePort" --port 8080

delete a service

kubectl delete service -l app=kubernetes-bootcamp kubectl delete service -l app=peer-aware-groupcache

export port

export NODE_PORT="$(kubectl get services/kubernetes-bootcamp -o go-template='{{(index .spec.ports 0).nodePort}}')" ;echo "NODE_PORT=$NODE_PORT" export NODE_PORT="$(kubectl get services/helm-chart-1704764238-peer-aware-groupcache -o go-template='{{(index .spec.ports 0).nodePort}}')";echo "NODE_PORT=$NODE_PORT"

test service without proxy

curl http://localhost:$NODE_PORT

use a label

kubectl get pods -l app=kubernetes-bootcamp kubectl get services -l app=kubernetes-bootcamp kubectl label pods "$POD_NAME" version=v1 kubectl describe pods "$POD_NAME" kubectl get pods -l version=v1

debug

kubectl describe pods fib-6ff8bffbcc-dcjzg kubectl logs "$POD_NAME" --all-containers kubectl get events kubectl get events --field-selector involvedObject.name=fib-6ff8bffbcc-b9nmz kubectl describe deployment fib

see replica set

kubectl get rs

scale up

kubectl scale deployments/kubernetes-bootcamp --replicas=4 kubectl scale deployments/fib --replicas=1

get pods with more info

kubectl get pods -o wide

upgrade image (rolling update including kill old and start new)

kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2 kubectl set image deployments/fib fib=localhost:5001/cache-client:latest

rollout restart deployment

kubectl rollout restart deployment/fib

rollout undo

kubectl rollout undo deployments/kubernetes-bootcamp

create pods using yaml file

kubectl create -f fib.yaml

how to run open local registry

docker run -d -p 5001:5000 --name registry registry:2.7 docker tag cache-client:latest localhost:5001/cache-client

build and redeploy with using registry

docker build --tag localhost:5001/cache-client:v24 . docker push localhost:5001/cache-client:v24 kubectl set image deployments/fib fib=localhost:5001/cache-client:v24

build and redeploy without using registry (fastest)

docker build --tag cache-client:v40 . kubectl set image deployments/fib fib=cache-client:v40

delete/recreate deployment from yaml file to apply latest

kubectl delete -f k8s/example/fib.yaml kubectl create -f k8s/example/fib.yaml

create busybox

kubectl run curl-ksong --image=radial/busyboxplus:curl -i --tty --rm

curl per pods

curl http://localhost:8001/api/v1/namespaces/default/pods/fib-6db7f6c4b8-4ntxk:8080/proxy/

distributed cache

modified version of groupCache

cache data stored by using shard (data will be spread)

git

main: https://github.com/golang/groupcache others: https://github.com/mailgun/groupcache https://github.com/vimeo/galaxycache https://github.com/orijtech/groupcache/tree/instrument-with-opencensus

alternative

https://github.com/buraksezer/olric

sql level cache with reddis

https://github.com/zeromicro/go-zero

peer-aware-groupcache

https://github.com/robwil/peer-aware-groupcache

with k8 (*)

https://github.com/jmuk/groupcache https://github.com/udhos/kubegroup

https://github.com/jmuk/groupcache https://github.com/danielvegamyhre/minicache https://github.com/allegro/bigcache https://github.com/orijtech/groupcache

posts (why)

https://giedrius.blog/2022/03/04/distributed-systems-magic-groupcache-in-thanos/ https://www.mailgun.com/blog/it-and-engineering/golangs-superior-cache-solution-memcached-redis/?utm_source=pocket_reader https://medium.com/codex/our-go-cache-library-choices-406f2662d6b https://joshua.themarshians.com/post/doozer-groupcache/?utm_source=pocket_reader

posts (tech)

https://medium.com/orijtech-developers/groupcache-instrumented-by-opencensus-6a625c3724c

peer watch

$ helm install -n peer-aware-groupcache helm-chart/ $ kubectl scale --replicas=3 deployment/peer-aware-groupcache $ export NODE_PORT=$(kubectl get --namespace default -o jsonpath="{.spec.ports[0].nodePort}" services peer-aware-groupcache) $ export NODE_IP=$(kubectl get nodes --namespace default -o jsonpath="{.items[0].status.addresses[0].address}") $ for i in seq 0 9; do echo 1234$i; curl http://$NODE_IP:$NODE_PORT/factors?n=1234$i; done

mysql port

https://github.com/kataras/iris/tree/main/_examples/database/mysql?utm_source=pocket_saves

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL