因此,我遵循了本教程,该教程解释了如何在Golang构建容器化微服务、Dockerize和部署到Kubernetes。
https://www.youtube.com/watch?v=H6pF2Swqrko
我已经到了可以通过迷你ip (我的是192.168.59.100)访问我的应用程序的地步。我设置了kubernetes,我现在有3个工作舱,但是我无法通过kubernetes打开我的golang应用程序,这个url是kubectl给我的:“192.168.59.100:31705.”

^
|
here我有线索..。当我搜索"https://192.168.59.100:8443/“时,会出现错误403:

这是我的deployment.yml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-deployment
labels:
app: web
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: go-web-app
image: go-app-ms:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80这是我的service.yml:
apiVersion: v1
kind: Service
metadata:
name: web-service
spec:
type: NodePort
selector:
app.kubernetes.io/name: web
ports:
- port: 80
targetPort: 80发布于 2022-07-24 20:00:43
您的服务选择器尝试将吊舱与标签:app.kubernetes.io/name: web匹配,但是豆荚有app: web标签。它们不匹配。服务上的选择器必须与吊舱上的标签相匹配。当您使用deployment对象时,这意味着与spec.template.metadata.labels中的标签相同。
发布于 2022-07-24 20:06:09
@Szczad正确地描述了这个问题。我想提出一种今后避免这个问题的办法。库斯托姆是构建Kubernetes清单的工具。它内置在kubectl命令中。它的一个特性是能够将一组公共标签应用于您的资源,包括正确地填充服务和部署中的选择器。
如果我们将您的Deployment简化为此(在deployment.yaml中):
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-deployment
spec:
replicas: 3
template:
spec:
containers:
- name: go-web-app
image: go-app-ms:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80以及您的Service (在service.yaml中):
apiVersion: v1
kind: Service
metadata:
name: web-service
spec:
type: NodePort
ports:
- port: 80
targetPort: 80我们将以下kustomization.yaml放在同一个目录中:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
commonLabels:
app: web
resources:
- deployment.yaml
- service.yaml然后,我们可以通过运行以下命令来部署这个应用程序:
kubectl apply -k .这将产生以下清单:
apiVersion: v1
kind: Service
metadata:
labels:
app: web
name: web-service
spec:
ports:
- port: 80
targetPort: 80
selector:
app: web
type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: web
name: web-deployment
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- image: go-app-ms:latest
imagePullPolicy: IfNotPresent
name: go-web-app
ports:
- containerPort: 80正如您在这里看到的,app: web标签已经应用于部署、部署选择器、pod模板和服务选择器。
像这样通过Kustomize应用标签意味着您只需要在一个地方更改标签。它使人们更容易避免标签不匹配引起的问题。
https://stackoverflow.com/questions/73101486
复制相似问题