0

目前,我正在尝试部署 tutum-hello-world。我已经为此编写了一个脚本,但它没有按预期工作。我确信这个问题与工作空间有关。

更新 这是我的代码task-tutum-deploy.yaml-

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: tutum-deploy
spec:
  steps:
    - name: tutum-deploy
      image: bitnami/kubectl
      script: |
        kubectl apply -f /root/tekton-scripts/tutum-deploy.yaml
  workspaces:
    - name: messages
      optional: true
      mountPath: /root/tekton-scripts/

错误 -

root@master1:~/tekton-scripts# tkn taskrun logs tutum-deploy-run-8sq8s -f -n default
[tutum-deploy] + kubectl apply -f /root/tekton-scripts/tutum-deploy.yaml
[tutum-deploy] error: the path "/root/tekton-scripts/tutum-deploy.yaml" cannot be accessed: stat /root/tekton-scripts/tutum-deploy.yaml: permission denied

container step-tutum-deploy has failed  : [{"key":"StartedAt","value":"2021-06-14T12:54:01.096Z","type":"InternalTektonResult"}]

PS - 我已将我的脚本放在主节点上 -/root/tekton-scripts/tutum-deploy.yaml

root@master1:~/tekton-scripts# ls -l tutum-deploy.yaml 
-rwxrwxrwx 1 root root 626 Jun 11 11:31 tutum-deploy.yaml

旧脚本

这是我的代码task-tutum-deploy.yaml-

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: tutum-deploy
spec:
  workspaces:
    - name: messages
      optional: true
      mountPath: /root/tekton-scripts/tutum-deploy.yaml
  steps:
    - name: tutum-deploy
      image: bitnami/kubectl
      command: ["kubectl"]
      args:
        - "apply"
        - "-f"
        - "./tutum-deploy.yaml"

这是我的代码,tutum-deploy.yaml它存在于 Kubernetes 集群的机器(主节点)上,具有读取、写入和执行权限 -

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-world-tutum
  labels:
    service: hello-world-tutum
spec:
  replicas: 1
  selector:
    matchLabels:
      service: hello-world-tutum
  template:
    metadata:
      labels:
        service: hello-world-tutum
    spec:
      containers:
      - name: tutum-hello-world
        image: tutum/hello-world:latest
        ports:
        - containerPort: 80

---
apiVersion: v1
kind: Service
metadata:
  name: hello-world-tutum
spec:
  type: NodePort
  selector:
    service: hello-world-tutum
  ports:
  - name: "80"
    port: 80
    targetPort: 80
    nodePort: 30050

我从 Kubernetes 集群的主节点运行了以下命令 -

1. kubectl apply -f task-tutum-deploy.yaml

2. tkn task start tutum-deploy

错误 -

使用 tekton 命令 -$ tkn taskrun logs tutum-deploy-run-tvlll -f -n default

task tutum-deploy has failed: "step-tutum-deploy" exited with code 1 (image: "docker-pullable://bitnami/kubectl@sha256:b83299ee1d8657ab30fb7b7925b42a12c613e37609d2b4493b4b27b057c21d0f"); for logs run: kubectl -n default logs tutum-deploy-run-tvlll-pod-vbl5g -c step-tutum-deploy

[tutum-deploy] error: the path "./tutum-deploy.yaml" does not exist

container step-tutum-deploy has failed  : [{"key":"StartedAt","value":"2021-06-11T14:01:49.786Z","type":"InternalTektonResult"}]
4

1 回答 1

1

错误来自您的 YAML 的这一部分:

spec:
  workspaces:
    - name: messages
      optional: true
      mountPath: /root/tekton-scripts/tutum-deploy.yaml

spec.workspaces.mountPath需要一个目录,而不是您在此处指定的文件。您可能的意思是/root/tekton-scripts/,但我不熟悉tutum-hello-world.

如果您查看文档,您会发现所有引用mountPath都是目录而不是文件。

于 2021-06-11T22:11:56.653 回答