I've set up win 10, minikube, docker. I need to start localstack in my local minikube. I didn't find out k8s deployment yaml. So I take docker compose yaml that provided by them at github. And create file like below:
# disk volume claim
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
com.job.service: localstack-claim0
name: localstack-claim0
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
status: {}
---
# service account
apiVersion: v1
kind: ServiceAccount
metadata:
name: localstack-account
labels:
com.job.service: localstack-service-account
---
# service
apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
labels:
com.job.service: localstack-service
name: localstack-service
spec:
type: NodePort
externalTrafficPolicy: Cluster
ports:
- name: "edge"
port: 4566
targetPort: 4566
- name: "es"
port: 4571
targetPort: 4571
- name: "ui"
port: 8080
targetPort: 8080
selector:
com.job.service: localstack-service
status:
loadBalancer: {}
---
# deployment
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
com.job.service: localstack-deployment
name: localstack-deployment
spec:
replicas: 1
selector:
matchLabels:
com.job.service: localstack-deployment
strategy:
type: Recreate
template:
metadata:
creationTimestamp: null
labels:
com.job.service: localstack-deployment
spec:
containers:
- env:
- name: DATA_DIR
value: ' '
- name: DEBUG
value: ' '
- name: DOCKER_HOST
value: tcp://127.0.0.1:2376
- name: HOST_TMP_FOLDER
- name: KINESIS_ERROR_PROBABILITY
value: ' '
- name: LAMBDA_EXECUTOR
value: ' '
- name: PORT_WEB_UI
value: ' '
- name: SERVICES
value: 'sqs'
image: localstack/localstack
imagePullPolicy: IfNotPresent
name: localstack-main
ports:
- name: edge
containerPort: 4566
protocol: TCP
- name: es
containerPort: 4571
protocol: TCP
- name: ui
containerPort: 8080
protocol: TCP
livenessProbe:
failureThreshold: 3
initialDelaySeconds: 0
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
httpGet:
path: /health
port: edge
readinessProbe:
failureThreshold: 3
initialDelaySeconds: 0
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
httpGet:
path: /health
port: edge
resources: {}
volumeMounts:
- mountPath: /tmp/localstack
name: localstack-claim0
restartPolicy: Always
serviceAccountName: localstack-account
volumes:
- name: localstack-claim0
persistentVolumeClaim:
claimName: localstack-claim0
status: {}but when I start with kubectl apply -f path_To_yaml and wait until all services is started. I try to reach health check endpoint and I receive only exception that cannot connect to host
I try to use minikube tunnel , and this didn't help
May be some1 know how to configure right localy? I am novice in devops
try to use minikube addons enable ingress but didn't help me
try to manual expose and forward port with next command
kubectl expose pod localstack-deployment-7667b8d6bf-6mqbp --type=ClusterIP --name=localstackand
kubectl port-forward po/localstack-deployment-7667b8d6bf-6mqbp 4566:4566and connect with aws cli and awslocal cli; But the same result: could not connect
Kubernetes clusters need to have an ingress controller for routing traffic from external world into
minikube addons enable ingressThe above will enable ingress and you should see a valid ingress controller when you do a 'get pods
NAME READY STATUS RESTARTS AGE
default-http-backend-59868b7dd6-xb8tq 1/1 Running 0 1m
kube-addon-manager-minikube 1/1 Running 0 3m
kube-dns-6dcb57bcc8-n4xd4 3/3 Running 0 2m
kubernetes-dashboard-5498ccf677-b8p5h 1/1 Running 0 2m
nginx-ingress-controller-5984b97644-rnkrg 1/1 Running 0 1m
storage-provisioner 1/1 Running 0 2mIf this still does not solve your issue , please post additional information on below kubectl commands
kubectl describe ingress
kubectl describe serviceThe output of these commands might help assist you further