当我尝试执行此命令时kubectl apply -f mydeployment.yaml我收到错误错误:SchemaError(io.k8s.api.core.v1.ContainerState):无效对象没有其他属性。如何将我的aspnetcore webapi成功部署到我当地的Kubernetes集群?
我已经尝试通过运行命令choco upgrade minikube来升级minikube。它说我已经有了最新版本。 minikube v1.0.0是根据您的来源提供的最新版本。
我创建的deployment.yaml看起来像这样。
apiVersion: apps/v1
kind: Deployment
metadata:
name: app
labels:
app: app
spec:
replicas: 3
selector:
matchLabels:
app: app
template:
metadata:
labels:
app: app
spec:
containers:
name: myfirstdockerapi
image: myfirstdockerapi
ports:
- containerPort: 80
在开始之前清理所有内容:
rm -rf ~/.minikube
根据文件:
您必须使用与群集的一个次要版本差异的kubectl版本。例如,v1.2客户端应该与v1.1,v1.2和v1.3 master一起使用。使用最新版本的kubectl有助于避免无法预料的问题。
在Github上的Minikube资源你可以找到here:
避免交互问题 - 将默认Kubernetes版本更新为v1.14.0#3967注意:,我们还建议将kubectl更新到最新版本(v1.13 +)
有关minikube的最新版本,请遵循官方文档here。
Kubernetes博客 - here, Stackoverlow here, Choco here,
在附加部署中存在缩进问题(已更正),请再试一次。
spec:
containers:
- name: myfirstdockerapi
image: myfirstdockerapi
ports:
- containerPort: 80
containers
元素需要一个列表,因此您需要在每个条目前加一个破折号。
apiVersion: apps/v1
kind: Deployment
metadata:
name: app
labels:
app: app
spec:
replicas: 3
selector:
matchLabels:
app: app
template:
metadata:
labels:
app: app
spec:
containers:
- name: myfirstdockerapi
image: myfirstdockerapi
ports:
- containerPort: 80
如果您不确定您是否可以使用kubectl来验证您的文件而不创建它:kubectl apply -f sample.yaml --validate --dry-run
以防万一您的kubectl版本与您的kubernetes集群版本相匹配。