Skip to content

Latest commit

 

History

History
101 lines (98 loc) · 2.24 KB

3.microservice.md

File metadata and controls

101 lines (98 loc) · 2.24 KB

Understand Microsoft

microsoft demo, run nginx as webserver

$ kubectl run --image=nginx nginx

show running pod

$ kubectl get po --show-labels -owide -w

expose svc

$ kubectl expose deploy nginx --selector run=nginx --port=80 --type=NodePort

check svc detail

$ kubectl get svc

check nodeip

$ minikube ssh
$ ifconfig eth1

access service

$ curl <nodeip>:<nodeport>

run envoy

$ kubectl create configmap envoy-config --from-file=envoy.yaml
$ kubectl create -f envoy-deploy.yaml
$ kubectl expose deploy envoy --selector run=envoy --port=10000 --type=NodePort

access service

$ curl <nodeip>:<nodeport>

scale up/down/failover

$ kubectl scale deploy <deployment-name> --replicas=<n>

configmap

cat game.properties

#configmap from file
kubectl create configmap game-config --from-file=game.properties
kubectl create configmap game-env-config --from-env-file=game.properties
kubectl get configmap -oyaml game-config

configmap from literal

kubectl create configmap special-config --from-literal=special.how=very --from-literal=special.type=charm
#downward api pod
kubectl create -f downward-api-pod.yaml
kubectl get po downward-api-pod
kubectl logs -f downward-api-pod

volume

kubectl create -f configmap-volume-pod.yaml
kubectl get po
kubectl logs -f configmap-volume-pod

readiness probe

kubectl create -f centos-readiness.yaml

multiple container pods

get object by columns

kubectl get svc  -o=custom-columns=NAME:.metadata.name,CREATED:'.metadata.annotations'

Operator

kubebuilder

$ kubebuilder init --domain example.com
$ kubebuilder create api --group infra --version v1 --kind WebService
$ make install

operator sdk

create new project

operator-sdk new memorycache-operator

add types

cd memorycache-operator
operator-sdk add api --api-version=cache.example.com/v1alpha1 --kind=Memcached

modify types and generate new code

operator-sdk generate k8s
operator-sdk generate openapi

operator helm

operator-sdk new nginx-operator --type=helm --kind=Nginx --api-version=web.example.com/v1alpha1
operator-sdk add crd --api-version=web.example.com/v1alpha1 --kind=Envoy --update-watches=true