kubernetes - localstack k8s 部署 yaml 和健康检查端点
问题描述
我已经设置了 win 10、minikube、docker。我需要在本地 minikube 中启动 localstack。我没有找到k8s部署yaml。所以我把他们在 github 上提供的 docker compose yaml 拿去。并创建如下文件:
# 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: {}
但是当我从 kubectl apply -f path_To_yaml 开始并等到所有服务启动时。我尝试到达健康检查端点,但我只收到无法连接到主机的异常
我尝试使用 minikube tunnel ,但这没有帮助
可能有人知道如何配置正确的本地化?我是 devops 的新手
尝试使用minikube addons enable ingress
但没有帮助我
尝试使用下一个命令手动公开和转发端口
kubectl expose pod localstack-deployment-7667b8d6bf-6mqbp --type=ClusterIP --name=localstack
和
kubectl port-forward po/localstack-deployment-7667b8d6bf-6mqbp 4566:4566
并与 aws cli 和 awslocal cli 连接;但同样的结果:无法连接
解决方案
Kubernetes 集群需要有一个入口控制器来将来自外部世界的流量路由到
minikube addons enable ingress
以上将启用入口,当您执行“获取 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 2m
如果这仍然不能解决您的问题,请在下面的 kubectl 命令中发布更多信息
kubectl describe ingress
kubectl describe service
这些命令的输出可能会帮助您进一步
推荐阅读
- javascript - 弹出窗口打开时禁用正文滚动
- css - 需要显示一些 div 一个接一个地加载,使用变换或转换从上到下
- bash - 如何通过命令行根据 docker 镜像名称获取容器 id?
- ruby-on-rails - rspec 已更改 1,但已更改 2
- python - 计算多个字符串列中字符串的出现次数
- react-native - React-native ScrollView 有时会朝错误的方向滚动
- python - pygraphviz 没有属性 AGraph
- c - 当我们将数组传递给函数时,副本是如何工作的?
- angular6 - 如何转换owlDateTime 选择器格式
- bioinformatics - fastqc 使用 Snakemake