首页 > 解决方案 > 如何编写正确的 yaml 以在 Azure devops 中部署 kubernetes 集群?

问题描述

我正在尝试使用 kubernetes 在 Azure 云中建立 Dockerized Angular 应用程序,但我不能这样做。一切看起来都很好,但是当我在浏览器上输入 web url 时看不到 angular 应用程序。我的 Dockerfile 或 yml 文件有什么问题?你能给我一些建议吗?我在 2 天内进行了很多搜索,但没有找到解决方案。

部署.yml:


apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: xxx-pod
  name: xxx-deployment
spec:
  replicas: 5
  selector:
    matchLabels:
      app: xxx-pod
  strategy: {}
  template:
    metadata:
     labels:
        app: xxx-pod
    spec:
      containers:
      - image: xxx.azurecr.io/cm-webui:v1
        name: webapp
        imagePullPolicy: Always
        resources: {}
        ports:
          - containerPort: 3080 
status: {}

服务.yml:


apiVersion: v1
kind: Service
metadata:
  name: xxx-service
  labels:
    run: xxx-pod
spec:
  selector:
    app: xxx-pod
  ports:
  - port: 3080
    targetPort: 80
  type: LoadBalancer

Dockerfile:


FROM node:10 AS ui-build
WORKDIR /usr/src/app
COPY my-app/ ./my-app/
RUN cd my-app && npm install @angular/cli && npm install && npm run build

FROM node:10 AS server-build
WORKDIR /root/
COPY --from=ui-build /usr/src/app/my-app/dist ./my-app/dist
COPY package*.json ./
RUN npm install
COPY server.js .

EXPOSE 3080

CMD ["node", "server.js"]

我的日志:


8m13s       Normal    EnsuredLoadBalancer            service/xxx-service                    Ensured load balancer
8m17s       Warning   FailedToUpdateEndpoint         endpoints/xxx-service                  Failed to update endpoint default/xxx-service: Operation cannot be fulfilled on endpoints "xxx-service": the object has been modified; please apply your changes to the latest version and try again
8m17s       Warning   FailedToUpdateEndpointSlices   service/xxx-service                    Error updating Endpoint Slices for Service default/xxx-service: failed to update xxx-service-p429q EndpointSlice for Service default/xxx-service: Operation cannot be fulfilled on endpointslices.discovery.k8s.io "xxx-service-p429q": the object has been modified; please apply your changes to the latest version and try again

标签: angularazuredockerkubernetesazure-devops

解决方案


在您交换的服务定义中porttargetPort值。port应该是 80 和targetPort3080。


推荐阅读