k3s - hianyzo

Fórumok

Sziasztok,

probalok Deploy-t kesziteni egy adott namespace-be.

Ezeket sikerult eddig hozzaadnom bill role objektumaba.

root@server:~/test# kubectl describe role bill -n brown-fox
Name:         bill
Labels:       <none>
Annotations:  <none>
PolicyRule:
  Resources               Non-Resource URLs  Resource Names  Verbs
  ---------               -----------------  --------------  -----
  deployments             []                 []              [create get update list watch patch delete]
  namespaces              []                 []              [create get update list watch patch delete]
  nodes                   []                 []              [create get update list watch patch delete]
  pods                    []                 []              [create get update list watch patch delete]
  replicasets             []                 []              [create get update list watch patch delete]
  services                []                 []              [create get update list watch patch delete]
  deployments.apps        []                 []              [create get update list watch patch delete]
  namespaces.apps         []                 []              [create get update list watch patch delete]
  nodes.apps              []                 []              [create get update list watch patch delete]
  pods.apps               []                 []              [create get update list watch patch delete]
  replicasets.apps        []                 []              [create get update list watch patch delete]
  services.apps           []                 []              [create get update list watch patch delete]
  deployments.extensions  []                 []              [create get update list watch patch delete]
  namespaces.extensions   []                 []              [create get update list watch patch delete]
  nodes.extensions        []                 []              [create get update list watch patch delete]
  pods.extensions         []                 []              [create get update list watch patch delete]
  replicasets.extensions  []                 []              [create get update list watch patch delete]
  services.extensions     []                 []              [create get update list watch patch delete]
root@server:~/test#

Kerdesek:

Futtathato egyetlen rendszeren a deploy tobb replikaja?

Milyen objektum hianyzik meg ahhoz, hogy az alabbi deploy lefusson hiba nelkul?

 

root@server:~/test# cat <<EOF | kubectl apply -f -
> apiVersion: v1
> kind: Deploy
> metadata:
>   name: nginx2
>   namespace: brown-fox
> spec:
>   replicas: 3
>   containers:
>   - name: nginx3-cont
>     image: nginx:1.14.2
>     ports:
>     - containerPort: 80
> EOF
error: resource mapping not found for name: "nginx2" namespace: "brown-fox" from "STDIN": no matches for kind "Deploy" in version "v1"
ensure CRDs are installed first
root@server:~/test#

 

UPDATE:

apiVersion: app/v1

kind: Deployment

sem segitett.

 

error: resource mapping not found for name: "nginx2" namespace: "brown-fox" from "STDIN": no matches for kind "Deployment" in version "app/v1"
ensure CRDs are installed first

 

 

Koszonom a segitseget.

Ardi

Hozzászólások

Meg ha hozza is adom:

 

root@server:~/test# kubectl describe role bill -n brown-fox
Name:         bill
Labels:       <none>
Annotations:  <none>
PolicyRule:
  Resources                                          Non-Resource URLs  Resource Names  Verbs
  ---------                                          -----------------  --------------  -----
  clusterrolebindings.rbac.authorization.k8s.io      []                 []              [create get list watch]
  clusterroles.rbac.authorization.k8s.io             []                 []              [create get list watch]
  deployment.apps                                    []                 []              [create get update list delete watch patch]
  namespaces                                         []                 []              [create get update list watch patch delete]
  nodes                                              []                 []              [create get update list watch patch delete]
  pods                                               []                 []              [create get update list watch patch delete]
  services                                           []                 []              [create get update list watch patch delete]
  customresourcedefinitions.apiextensions.k8s.io/v1  []                 []              [get list watch create update patch delete]
root@server:~/test#

akkor is ezt kapom:

customresourcedefinitions         crd,crds     apiextensions.k8s.io/v1                false        CustomResourceDefinition

Nincs valamilyen tool. mely listazna, mik kellenek egy deploymenthez?

Ardi

a parancs amit fent irtam azt csinalja...kilistazza milyen apik/kind-ok elerhetoek a kubernetesedben a built-in vagy hozzaadott crd-k szerint. Az hogy mik a kotelezo parameterek egy deploymentnel le van irva a doksiban. Vagy nezd meg a json schema-t. Vagy rakj fel az ide-dbe egy plugint ami ellenorzi (vscode kubernetes plugin pl.)

nem akarsz kicsit dokumentaciot olvasni vagy egy oktatast megnezni mielott nekiesel mint uveges toth a hanyattesesnek?

Nagyon ugy fest a spec resz, hogy ez egy mezei Deployment szeretne lenni. Igy semmilyen role sem szukseges hozza.

Ez lenne az eleje:

apiVersion: apps/v1
kind: Deployment

Az az erdekes, hogy meeg igy sem megy.

Es nemcsak a context modban, hanem root-kent sem a szerveren:

 

root@server:~/test# cat <<EOF | kubectl apply -f -
> ---
> apiVersion: apps/v1
> kind: Deployment
> metadata:
>   name: nginx2
>   namespace: brown-fox
> spec:
>   replicas: 2
>   containers:
>     - name: nginx3
>       image: nginx:1.14.2
>       ports:
>         - containerPort: 80
> EOF
Error from server (BadRequest): error when creating "STDIN": Deployment in version "v1" cannot be handled as a Deployment: strict decoding error: unknown field "spec.containers"
root@server:~/test#
root@server:~/test#

Es https://www.yamllint.com/ szerint jo a YAML file.

Ardi

Koszi -ezzel mukodott root alatt:

 

deployment.apps/nginx-deployment created

ha hozzairtam a namespace: brown-fox sort

kubectl delete deploy nginx-deployment -n brown-fox
deployment.apps "nginx-deployment" deleted

 

Viszont ha a gepemrol probalom bill-context config beallitassal, akkor meeg mindig hibas:

Error from server (Forbidden): error when retrieving current configuration of:
Resource: "apps/v1, Resource=deployments", GroupVersionKind: "apps/v1, Kind=Deployment"
Name: "nginx-deployment", Namespace: "brown-fox"
from server for: "STDIN": deployments.apps "nginx-deployment" is forbidden: User "system:serviceaccount:brown-fox:bill-s
a" cannot get resource "deployments" in API group "apps" in the namespace "brown-fox"

 

root@server:~/test# ku get sa -n brown-fox
NAME      SECRETS   AGE
default   0         9d
bill-sa   1         9d
root@server:~/test# ku describe sa bill-sa -n brown-fox
Name:                bill-sa
Namespace:           brown-fox
Labels:              <none>
Annotations:         <none>
Image pull secrets:  <none>
Mountable secrets:   bill-secret
Tokens:              bill-secret
Events:              <none>
root@server:~/test#

nem tudom, mit tegyek a role definicioba es pontosan melyik apiGroup ala...

Ardi

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx2
  namespace: default
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

#root@server:~/test# cat <<EOF | kubectl apply -f -
#> apiVersion: v1
#> kind: Deploy
#> metadata:
#>   name: nginx2
#>   namespace: brown-fox
#> spec:
#>   replicas: 3
#>   containers:
#>   - name: nginx3-cont
#>     image: nginx:1.14.2
#>     ports:
#>     - containerPort: 80

 

 

NAMESPACE      NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE
.....

portainer      deployment.apps/portainer                   1/1     1            1           71m

default        deployment.apps/nginx2                      3/3     3            3           2m1s

 

 

default        pod/nginx2-85996f8dbd-5s9jj                     1/1     Running   0             17m   10.1.164.150     as8    <none>           <none>
default        pod/nginx2-85996f8dbd-jtjf2                     1/1      Running   0             17m   10.1.164.148     as8    <none>           <none>
default        pod/nginx2-85996f8dbd-n8kx9                     1/1   Running   0             17m   10.1.164.149     as8    <none>           <none>
 

Asszem, meglett az egesz:

Ezzel kezdtem a szerveren - meeg meg kell ertenem, melyik mire van es mi felesleges. :-)

 

cat <<EOF | kubectl apply -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: bill
  namespace: brown-fox
rules:
  - apiGroups: [""]
    resources: ["pods", "services", "namespaces", "nodes"]
    verbs: ["create", "get", "update", "list", "watch", "patch", "delete"]  #now delete is there
  - apiGroups: ["apiextensions.k8s.io/v1"] #alabb kiszedve
    resources: ["customresourcedefinitions"] #alabb kiszedve
    verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] ##alabb kiszedve
  - apiGroups: ["apps", "extensions"] #extensions added
    resources: ["deployments"]# wrongly deployment was here without s at the end
    verbs: ["create", "get", "update", "list", "delete", "watch", "patch"]
  - apiGroups: ["rbac.authorization.k8s.io"] #alabb kiszedve
    resources: ["clusterroles", "clusterrolebindings"]#alabb kiszedve
    verbs: ["create", "get", "list", "watch"] #alabb kiszedve
EOF

 

UPDATE: (mukodik ezzel is - kiszedtem par sort)

cat <<EOF | kubectl apply -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: bill
  namespace: brown-fox
rules:
  - apiGroups: [""]
    resources: ["pods", "services", "namespaces", "nodes"]
    verbs: ["create", "get", "update", "list", "watch", "patch", "delete"]  #now delete is there
  - apiGroups: ["apps", "extensions"] #extensions added
    resources: ["deployments"]# wrongly deployment was here
    verbs: ["create", "get", "update", "list", "delete", "watch", "patch"]
EOF

 

a notebookon:

$ cat <<EOF | kubectl apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  namespace: brown-fox
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
EOF
deployment.apps/nginx-deployment created

$ ku get deploy -n brown-fox
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   3/3     3            3           95s

$ ku get pod -n brown-fox
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-7fb96c846b-5bh88   1/1     Running   0          101s
nginx-deployment-7fb96c846b-dcrhp   1/1     Running   0          101s
nginx-deployment-7fb96c846b-g846b   1/1     Running   0          101s

$ ku delete deploy nginx-deployment -n brown-fox
deployment.apps "nginx-deployment" deleted

$

Ugyhogy tudok deploy-t rakni es torolni is.

Koszonot mindenkinek a segitsegert.

Ardi