gpt4 book ai didi

azure - 部署到 Azure kubernetes 时解析 list 时出错

转载 作者:行者123 更新时间:2023-12-03 01:13:28 24 4
gpt4 key购买 nike

我正在设置 GitHub 操作以部署到 Azure kubernetes。部署作业如下所示:

deploy:
name: Deploy to kubernetes
runs-on: ubuntu-latest
needs: docker
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup kubectl
uses: Azure/setup-kubectl@v3
- name: Setup cluster context
uses: Azure/k8s-set-context@v3
with:
method: kubeconfig
kubeconfig: ${{ secrets.AZURE_K8_KUBECONFIG }}
- name: Deploy to Azure
uses: Azure/k8s-deploy@v4
with:
manifests: manifests/test/manifest.yml
images: ghcr.io/${{ env.image_name }}:${{ needs.release-on-push.outputs.version }}
pull-images: false
annotate-namespace: false

当进入部署阶段时,它会运行一个 list ,如下所示:

apiVersion: v1
kind: Service
metadata:
name: localizer
spec:
selector:
app: localizer
ports:
- name: std-api-ports
port: 8080
targetPort: http-in

---

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: localizer
labels:
app: localizer
annotations:
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
nginx.ingress.kubernetes.io/proxy-body-size: "300M"
spec:
ingressClassName: nginx-default
rules:
- host: localizer.UUID.LOCATION.aksapp.io
http:
paths:
- backend:
service:
name: localizer
port:
name: std-api-ports
path: /
pathType: Prefix

---

apiVersion: apps/v1
kind: Deployment
metadata:
name: localizer
labels:
app: localizer
domain: frontend
spec:
replicas: 2
selector:
matchLabels:
app: localizer
strategy:
rollingUpdate:
maxUnavailable: 0
maxSurge: 1
template:
metadata:
labels:
app: localizer
spec:
containers:
- name: localizer
image: ghcr.io/urltorepo
resources:
requests:
cpu: 0.5
memory: 2G
limits:
memory: 2G
ports:
- name: http-in
containerPort: 8080
env:
- name: NODE_ENV
value: "test"
imagePullPolicy: Always
livenessProbe:
httpGet:
path: /ping
port: http-in
failureThreshold: 3
periodSeconds: 30
startupProbe:
httpGet:
path: /ping
port: http-in
failureThreshold: 12
periodSeconds: 10

工作流程由于以下错误而失败:

Run Azure/k8s-deploy@v4
with:
manifests: manifests/test/manifest.yml
images: ghcr.io/***/localizer:
pull-images: false
annotate-namespace: false
namespace: default
strategy: basic
route-method: service
version-switch-buffer: 0
traffic-split-method: pod
percentage: 0
action: deploy
force: false
token: ***
private-cluster: false
skip-tls-verify: false
env:
image_name: ***/localizer
AZURE_WEBAPP_NAME: localizer-app
KUBECONFIG: /home/runner/work/_temp/kubeconfig_1682630327009
Deploying manifests
/opt/hostedtoolcache/kubectl/1.27.1/x64/kubectl apply -f /tmp/manifest.yml --namespace default
service/localizer unchanged
ingress.networking.k8s.io/localizer configured
error: error parsing /tmp/manifest.yml: error converting YAML to JSON: yaml: line 25: mapping values are not allowed in this context
Error: Error: undefined

从控制台看来,服务已设置并且入口已设置,这使我相信部署是出现错误的部分。我已通过 YAML 验证器运行 list 并且它通过了。我尝试注释掉 list 中的值,因此控制台显示服务未更改,并且 Ingress 已配置而不是创建。我似乎对现在可能出现的错误一无所知。

更新:我现在尝试将 list 文件拆分为三个文件(部署、入口和服务)。这让我发现肯定是部署 list 导致了错误。我还发现该错误与“图像”元素有关。我尝试遵循 Microsoft 关于 Azure kubernetes 的类(class),如果我用示例中的图像更改图像,那么就没有问题。

最佳答案

该操作不起作用后,我决定尝试通过 Cloud Shell 直接在 Azure 中编写 list 。 list 按预期工作,这导致我们了解到问题与部署操作有关。最后在激活调试器的情况下运行该操作,问题终于暴露出来。该镜像未收到早期作业的版本。这导致图像显示为“ghcr.io/*****/****:”。然后,这被视为 Deployment.yml 中的一个对象

关于azure - 部署到 Azure kubernetes 时解析 list 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76124824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com