Error deployment aspnetcore webapi to minikube

4/20/2019

When I try to execute this command kubectl apply -f mydeployment.yaml I receive an error error: SchemaError(io.k8s.api.core.v1.ContainerState): invalid object doesn't have additional properties. What can I do to deploy my aspnetcore webapi successfully to my local Kubernetes cluster?

I've already tried to upgrade minikube by running the command choco upgrade minikube. It says I've already have te latest version. minikube v1.0.0 is the latest version available based on your source(s).

My deployment.yaml I've created looks like this.

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
-- Marcel Beeker
kubernetes
minikube

2 Answers

4/21/2019

The containers element expects a list, so you need to prefix each entry with a dash.

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

If you are unsure you can always use kubectl to validate your file without creating it: kubectl apply -f sample.yaml --validate --dry-run Just in case make sure that your kubectl version matches the version of your kubernetes cluster.

-- Thomas
Source: StackOverflow

4/29/2019


Cleanup everything before you start:

rm -rf ~/.minikube

As per documentation:

You must use a kubectl version that is within one minor version difference of your cluster. For example, a v1.2 client should work with v1.1, v1.2, and v1.3 master. Using the latest version of kubectl helps avoid unforeseen issues.

Minikube resources on Github you can find here:

To avoid interaction issues - Update default Kubernetes version to v1.14.0 #3967 NOTE: , we also recommend updating kubectl to a recent release (v1.13+)

For the latest version of minikube please follow official documentation here.

Kubernetes blog - here,
Stackoverlow here,
Choco here,

In the attached deployment there was indentation problem (corrected) so please try again.

spec:
  containers:
  - name: myfirstdockerapi
    image: myfirstdockerapi
    ports:
    - containerPort: 80
-- Hanx
Source: StackOverflow