Uising mini-kube, setup pods, services and ingress
· 약 4분
On Local
install qemu and socket_vmnet
brew install qemu
brew install socket_vmnet
brew tap homebrew/services
HOMEBREW=$(which brew) && sudo ${HOMEBREW} services start socket_vmnet
mini-kube
install
home-brew
brew install minikube
start k8s on local with qemu driver
minikube start --driver=qemu --network=socket_vmnet --alsologtostderr
Note Using
qemudriver with(or without)socket_vmnetcause an error from addingingress-controlleradd-on to minikube. But starting minikube withdockerdriver does not cause any issue with addingingressadd-on. Unfortunately I don’t know how to resolve the error yet. Error log...failed to register layer: lsetxattr security.capability...
start k8s on local with docker driver
minikube start --driver=docker --alsologtostderr
Add image to mini-kube
After building application docker image, please run below to put the image into mini-kube.
docker save sample-app | (eval $(minikube docker-env) && docker load)
Apply deployment
sample deployment
sample-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: sample-app
spec:
selector:
matchLabels:
app: sample-app
replicas: 2
template:
metadata:
labels:
app: sample-app
spec:
containers:
- name: sample-app
image: sample-app:latest
imagePullPolicy: Never
ports:
- containerPort: 20080
protocol: TCP
How to apply the deployment
Please run below command.
kubectl apply -f [path of the file/sample-deployment.yml]
There has to be result messages including something like deployment.apps/sample-app created
Check status of deployed pods
Check status of pods
kubectl get pods -w -n default
Check logs of pods
kubectl logs --selector app=sample-app -n default
Apply service
sample service
sample-service.yml
apiVersion: v1
kind: Service
metadata:
name: sample-app
spec:
selector:
app: sample-app
ports:
- name: webview
appProtocol: http
protocol: TCP
port: 20080
targetPort: 20080
- name: weview-health
protocol: TCP
port: 20081
targetPort: 20081
How to apply service
kubectl apply -f [path of the file/sample-service.yml]
Config ingress-controller
Enable ingress on mini-kube
minikube addons enable ingress
How to check enabled ingress-controller
Check status of ingress-controller pod
kubectl get pods -w -n ingress-nginx
Apply our ingress config
sample
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: sample-ingress
annotations:
kubernates.io/ingress.class: nginx
nginx.ingress.kubernates.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /sample/view/
pathType: Prefix
backend:
service:
name: sample-app
port:
number: 20080
How to apply
kubectl apply -f [path of the file/sample-ingress.yml]
