我有一个skaffold.yaml
文件,如下所示:
apiVersion: skaffold/v2alpha3
kind: Config
deploy:
mk:
manifests:
- ./infra/k8s/*
build:
local:
push: false
artifacts:
- image: learnertester/auth
context: auth
docker:
dockerfile: Dockerfile
sync:
manual:
- src: 'src/**/*.ts'
dest: .
- image: learnertester/ticketing-client
现在,我已经在Ubuntu 22.04上安装了microk8s
并想要使用它。我还为microk8s kubectl
定义了别名mk
。但是当我修改下面一行时:
deploy:
kubectl:
:
deploy:
mk:
我得到以下错误运行skaffold dev
:
parsing skaffold config: error parsing skaffold configuration file: unable to parse config: yaml: unmarshal errors:
line 55: field mk not found in type v2alpha3.DeployConfig
我该如何解决这个问题?
根据本文档,使用deploy作为microk8s kubectl
而不是mk。这可能没有使用别名mk,或者您没有使用正确的别名。
添加一个别名(附加到~/.bash_aliases),如下所示:Alias kubectl='microk8s kubectl'
然后使用下面的as并尝试:
deploy:
microk8s kubectl:
参考这个文件夹。有关Yaml的更多信息,您还需要使用正确的dest路径(#destination path在容器中,文件应该同步到..)
你也可以查看IntelliJ和VS Code的Cloud Code或在线Cloud Shell Editor,它提供了skaffold。Yaml编辑帮助,包括突出显示文件中的错误。
我也面临同样的问题:
apiVersion: skaffold/v2alpha3
kind: Config
deploy:
microk8s kubectl:
manifests:
- ./infra/k8s/*
……
"Property microk8s kubectl不允许。yaml-schema: skaffold.yaml"
我从这里找到了这个解决方案:https://github.com/GoogleContainerTools/skaffold/issues/5283
Ubuntu 20.04 Server - microk8s Kubernetes - old laptop as a Server
。撤销别名注释或删除行:# alias kubectl='microk8s kubectl'
nano ~/.bashrc
nano ~/.bash_aliases
。安装kubectl并导出配置
sudo snap install kubectl --classic
microk8s.kubectl config view --raw > $HOME/.kube/config
New config file created in my case....ls $HOME/.kube/
。脚手架。所有.yaml文件的路径
apiVersion: skaffold/v4beta1
kind: Config
manifests:
rawYaml:
- ./infra/k8s/*
。参考Yaml
apiVersion: skaffold/v3alpha1
kind: Config
build:
artifacts:
- image: ajochope/auth
context: auth
docker:
dockerfile: Dockerfile
sync:
manual:
- src: "src/**/*.js"
dest: .
manifests:
rawYaml:
- ./infra/k8s/*
deploy:
kubectl: {}
干杯! !