Ark*_*ała 55 kubernetes kubectl kubernetes-deployment
我正在关注该教程(https://www.baeldung.com/spring-boot-minikube),我想在yaml文件(simple-crud-dpl.yaml)中创建Kubernetes部署:
apiVersion: apps/v1
kind: Deployment
metadata:
name: simple-crud
spec:
selector:
matchLabels:
app: simple-crud
replicas: 3
template:
metadata:
labels:
app: simple-crud
spec:
containers:
- name: simple-crud
image: simple-crud:latest
imagePullPolicy: Never
ports:
- containerPort: 8080
Run Code Online (Sandbox Code Playgroud)
但是当我跑步时kubectl create -f simple-crud-dpl.yaml
我得到了:
error: SchemaError(io.k8s.api.autoscaling.v2beta2.MetricTarget): invalid object doesn't have additional properties
我正在使用kubectl的最新版本:
kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:38:32Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.0", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:45:25Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
Run Code Online (Sandbox Code Playgroud)
我也在本地使用minikube,如教程中所述。一切正常,直到部署和服务。我做不到。
小智 132
在用brew安装kubectl之后,您应该运行:
rm /usr/local/bin/kubectl
brew link --overwrite kubernetes-cli
并且可以选择:
brew link --overwrite --dry-run kubernetes-cli
。
小智 29
我第二个@rennekon的答案。我发现我的机器上同时运行了docker,该机器也可以安装kubectl
。安装kubectl导致显示此问题。
我采取了以下步骤:
brew uninstall kubectl
brew install kubectl
brew link --overwrite kubernetes-cli
这样我便能够kubectl apply
成功运行命令。
Sat*_*amy 26
我也有同样的问题。在我的系统中,kubectl是从docker运行的,而docker是在我们安装Docker时预先安装的。您可以使用以下命令进行检查
ls -l $(which kubectl)
Run Code Online (Sandbox Code Playgroud)
返回为
/ usr / local / bin / kubectl-> /Applications/Docker.app/Contents/Resources/bin/kubectlcode。
现在我们必须用用brew安装的kubectl覆盖符号链接
rm /usr/local/bin/kubectl
brew link --overwrite kubernetes-cli
Run Code Online (Sandbox Code Playgroud)
(最佳)
brew unlink kubernetes-cli && brew link kubernetes-cli
Run Code Online (Sandbox Code Playgroud)
验证
ls -l $(which kubectl)
Run Code Online (Sandbox Code Playgroud)
Hen*_*ijn 23
安装Docker后,我在minikube / Windows 10上遇到了相同的问题。这是由于该线程中已经多次提及kubectl的版本不匹配引起的。Docker安装了1.10版本的kubectl。
您有两种选择:
1)确保k8s bin的路径在docker中的路径上方
2)用正确的路径替换'c:\ Program Files \ Docker \ Docker \ resources \ bin'中的kubectl
小智 12
您的客户端版本太旧。在我的环境中,该版本随Docker一起提供。我必须从https://storage.googleapis.com/kubernetes-release/release/v1.14.0/bin/windows/amd64/kubectl.exe下载新客户端,现在可以正常工作:
kubectl version
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.0", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:53:57Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.0", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:45:25Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
Run Code Online (Sandbox Code Playgroud)
您可以在命令中使用“--validate=false”。例如:
kubectl create -f simple-crud-dpl.yaml --validate=false
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
25911 次 |
最近记录: |