Sziasztok,
a Configure RBAC in your Kubernetes Cluster (bitnami.com)
oldal szerint k3s un. lightweight kubernetes rendszeren ki szeretnem probalni a limitalt namespace konfiguralasat.
Csak egyetlen master szerverem van docker+k3s rendszerrel debian bullseye op. rendszerrel, ahol root hozzaferesem is van.
Meg tudna nekem mondani, hol is talalhatok k3s rendszeren a tanusitvanyok/certificates?
Szerintetek mukodni fog az egesz?
Van valakinek tapasztalata k3s rendszerrel?
Koszonom elore a segitseget.
Ardi
- 724 megtekintés
Hozzászólások
Ha jól látom akkor a server-0 containerben kell találnod egy /var/lib/rancher/k3s/server/tls könyvtárat, ahol van client-ca.crt, client-ca.key file. Ezeket használva átment az első lépésen.
De személy szerint jobban tetszik a hivatalos eljárás: https://kubernetes.io/docs/reference/access-authn-authz/certificate-sig…
- A hozzászóláshoz be kell jelentkezni
Koszonom szepen - megnezem a het elejen, mit is tudok kezdeni a client-ca.crt, client-ca.key file-okkal...
Kellemes hetveget addig is mindenkinek.
Ardi
- A hozzászóláshoz be kell jelentkezni
Sziasztok,
probaltam a dromie altal feltuntetett hivatalos linket.
Ugy latszik, mukodik.
Letrehoztam egy development-dept namespace objektumot:
kubectl create namespace development-dept
Majd a kovetkezo parancsot hasznaltam:
kubectl config set-context myuser --cluster=kubernetes --namespace=development-dept --user=myuser
Rovid teszt:
root@server:~# kubectl config use-context myuser
Switched to context "myuser".
root@server:~# kubectl get nodes
The connection to the server localhost:8080 was refused - did you specify the right host or port?
root@server:~#
Ami talan jonak latszik, mivel myuser ne lassa az infot a node-okrol, ugye?
Visszakapcsolva default-ra:
root@server:~# kubectl config use-context default
Switched to context "default".
root@server:~# kubectl get nodes
NAME STATUS ROLES AGE VERSION
server Ready control-plane,master 3d5h v1.25.5+k3s2
root@server:~#
Most mar csak az a kerdes, hogy tud a myuser kivulrol bejelentkezni a server gepre es ott a development-dept
namespace alatt "mukodni"?
Ardi
- A hozzászóláshoz be kell jelentkezni
"Most mar csak az a kerdes, hogy tud a myuser kivulrol bejelentkezni a server gepre es ott a development-dept
namespace alatt "mukodni"?"
Nem egészen értem hogy hova més miért akar a myuser bejelentkezni. kubectl -n development-dept ... paranccsal el tudn intézni bármit a clusteren belül amit akar és amihez joga van.
- A hozzászóláshoz be kell jelentkezni
Hmm, peldaul azert, mert a myuser nem klasszikus linux user /home/myuser konyvtarral.
Ekkor hogyan kuldod a " kubectl -n development-dept ..." parancsot a server gepre, ahol fut a docker es a k3s service
es csak root felhasznalo fut rajta?
Vagy feltetel, hogy a myuser felhasznalo "klasszikus" linux-user legyen /home/myuser konyvtarral?
Ardi
- A hozzászóláshoz be kell jelentkezni
a kubernetes nem tud, és nem is érdekli hogy milyen posix userek vannak.
ha megnézed a "kubectl config view --minify --raw" kimenetét, akkor láthatod, hogy a current-context egy context(cluster,namespace,user) strukturára mutat:
- cluster mutatja meg az apiserver elérhetőségét
- user azonosítja a felhasználót
- namespace pedig a default namespace-t
szóval ha kivülről akard elérni a k8s/k3s -edet, akkor a kubeconfig -od cluster-ért hogy betaláljon a konténerben futó apiserver-be.
ebből az is következik, hogy bárhol összerakhatsz egy jó kubeconfig-ot....és a "felhasználónak" semmi mást nem kell odaadni, csak egy jó kubeconfig-ot
- A hozzászóláshoz be kell jelentkezni
Írd le pontosan mit szeretnél! A hozzászólásaidból nekem az jön le, hogy nem nagyon tudod hogyan működik a Kubernetes és mire jó.
A kubectl paranccsal bármilyen Kubernetes erőforrást létre tudsz hozni a szerveren - deploymentet, pod-okat, service-eket, stb. Én pl egyáltalán nem szoktam belépni a cluster node-jaira, bár elvileg be lehetne.
Ponstosan mi a use case? Mit szeretnék a clusteren futtatni?
- A hozzászóláshoz be kell jelentkezni
Az igaz, hogy nem teljesen ertem - hiszen csak nemreg kezdtem ismerkedni vele. :-)
Hogy most mit szeretnek? Van 1 azaz 1 szerverem, ahol docker es k3s service fut.Root vagyok a gepen + van egy sajat specialis user ssh hozzaferessel.
Szeretnek user-eket letrehozni, akiknek sajat namespace-uk van, ahol barmit letrehozhatnak, modifikalhatnak es torolhetnek. (mondjuk egy podot, deploymentet (amelyek a szerverre lehuzott docker image-kbol futtatnak mondjuk egy szkriptet) es nem zavarjak a masik usert es nem is babralhatnak bele egymas dolgaiba)
Nem tudom, lehet-e quotat szabni szamukra, ami a cpu-t, ram-ot, tarhelyet, egyebet illeti...
E felhasznalok NEM klasszikus linux userek.(nincs /home/user1 /home/user2 konyvtaruk). A szerver ip cime IP=szerver_IP.
Egyelore ezt szeretnem letrehozni es peldan keresztul megerteni.
Ardi
- A hozzászóláshoz be kell jelentkezni
Minden feature-t lehet, amit leírtál, viszont a Kubernetes nagyon máshogy működik user szemszögből, mint egy hagyományos linux (még ha a háttérben ezek amúgy végső soron linuxos feature-ket is használnak). Én azt javasolnám, hogy kiragadott példák és kisérletezgetés helyett inkább keress valami Kubernetes kurzust / tutorialt és menj rajta végig, mert ha nem érted a mögöttes koncepciókat, akkor nagyon hamar el fogsz veszni a feature-k között.
- A hozzászóláshoz be kell jelentkezni
Hmm, az altalad emlitett parancs kimenete tartalmaz vmi kulcsokat, viszont zavar, hogy nem tartalmazza a szerver IP cimet.
Hogy leli meg a "jol" elkeszitett config a megfelelo kubernetes clustert? (az en esetemben az egyetlen szervert)?
Ardi
kubectl config view --minify --raw
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0tLS1CRUdJ...LQo=
server: https://127.0.0.1:6443
name: default
contexts:
- context:
cluster: default
user: default
name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
user:
client-certificate-data: LS0tL......LS0K
client-key-data: LS0...Qo=
- A hozzászóláshoz be kell jelentkezni
Nekem az a 127.0.0.1 eléggé IP cím szagú....
a certificate-authority-data a https certificate-jét tartlamazza
- A hozzászóláshoz be kell jelentkezni
és valószínű ami hiányzik neked az a "docker ps" kimenetének a PORTS oszlopa
- A hozzászóláshoz be kell jelentkezni
Ahogy dromie kolléga írta, a szervered ip címe jelen esetben 127.0.0.1. A 6443 pedig a K8s API szerver portja. A kubectl-nek a cert adatokkal együtt ennyi épp elég.
A docker parancsot felejsd el, mindent el tudsz intézni a kubectl-el. Amit nem, azt K8s alatt nem lehet :-). Ha a config fájlod a ~/.kube/config útvonalon van, akkor nem kell külön kapcsoló a parancsnak, ha máshol, akkor a --kubeconfig -al tudod megadni neki az aktuálisan használt configot.
A Kubernetes arra való, hogy konénerizált mikroszervizeket futtass jól skálázható módon. Nem biztos hogy userek scriptjeinek futtatására ez a legalkamasabb rendszer.
- Milyen nyelvű scripteket kell futtatni?
- Várhatóan milyen függőségei lesznek a scripteknek?
- Honnan jön az input? Adatfájlokból? REST API hívásokból?
- Hova kell eljuttatni az ederményt és milyen formában? Elég logolni? Kimeneti fájlok lesznek?
- Csak parancssori cli scripteket arasz futtatni vagy mást is?
A fentiektől függ hogy pontosan milyen K8s resource-okra lesz szükséged, illetve mennyire alkalmas a feladatra a K8s.
- A hozzászóláshoz be kell jelentkezni
Sziasztok,
koszonom a hozzaszolasokat - mindegyik hasznos.
Azt szeretnem megerteni, hogy ha 2 kulonbozo, egymastol fuggetlen kubernetes szerverem lenne IP1 es IP2 cimekkel, viszont
mindeketton 127.0.0.1 port 6443 lenne definialva, akkor a sajat gepemen hogy generalom a kulcsokat?
Honnan tudom, melyik configot (fájlod a ~/.kube/config ) kell belovasnom, hogy az egyik illetve a masik rendszeren hajtsam vegre a kubectl parancsokat?
Megjegyzes: most nem fontos, hogyan hasznalom a docker image-t a pod illete a deploy yaml file definiciojaban.
Valahogy nem tiszta szamomra, honnan tudja a gepem kulcsok generalasa utan, hogy az egyik illetve a masik rendszeren hajtsa vegre a parancsokat.
A kulcsok generalasanal a szerverek mas es mas ca.key kulccsal rendelkeznek es igy kulonbozo kulcsok generalodnak a notebookom szamara? Es nem szukseges, hogy a ca.key kulcs tartalmazza a kubernetes1 szerver illetve kubernetes2 szerver ip cimet?
pl. https://kubernetes.io/docs/tasks/administer-cluster/certificates/
Mert ha a kovetkezo link szerint generalok egy user (=employee) reszere employee.key es employee.csr kulcsokat:
https://docs.bitnami.com/tutorials/configure-rbac-in-your-kubernetes-cl…
openssl genrsa -out employee.key 2048
openssl req -new -key employee.key -out employee.csr -subj "/CN=employee/O=bitnami"
Locate your Kubernetes cluster certificate authority (CA).
This will be responsible for approving the request and generating the necessary
certificate to access the cluster API. Its location is normally /etc/kubernetes/pki/.
In the case of Minikube, it would be ~/.minikube/. Check that the files ca.crt and ca.key
exist in the location.
A kovetkezo sorban hasznalom fel az adott kubernetes szerver ca.crt es ca.key kulcsait arra, hogy kigeneraljam az employee.crt
Generate the final certificate employee.crt by approving the certificate
sign request, employee.csr, you made earlier. Make sure you substitute
the CA_LOCATION placeholder with the location of your cluster CA. In this example,
the certificate will be valid for 500 days:
openssl x509 -req -in employee.csr -CA CA_LOCATION/ca.crt -CAkey CA_LOCATION/ca.key -CAcreateserial -out employee.crt -days 500
Save both employee.crt and employee.key in a safe location (in this example we will use /home/employee/.certs/).
Megjegyzes: ez a mondatot nem teljesen ertem - nem arrol van szo, hogy az employee nem klasszikus linux user, akinek NINCS /home/employee konyvtara???
kubectl config set-credentials employee --client-certificate=/home/employee/.certs/employee.crt --client-key=/home/employee/.certs/employee.key
kubectl config set-context employee-context --cluster=minikube --namespace=office --user=employee
Now you should get an access denied error when using the kubectl CLI with this configuration file.
This is expected as we have not defined any permitted operations for this user.
kubectl --context=employee-context get pods
Ardi
- A hozzászóláshoz be kell jelentkezni
Ha az első K8s szervered API szervere a 127.0.0.1:6443-on érhető el, akkor nem fogsz tudni második szervert indítani ugyan ezekkel a beállításokkal. Valószínűleg van rá mód, hogy ilyenkor a K8s API szerver másik porton figyeljen. De amúgy sem üzemszerű, hogy egy gép két különböző cluster nodejaként is funkcionál.
Mind írtam, a K8s arra való, hogy távoli szervereken, jól skálázható módon futtass konténerizált (nem feltétlenül Dockerben) alkalmazásokat. A fenti leírás arról szól, hogy nyilván egy userrel be vagy lépve egy munkaállomásra és onnan szeretnéd elérni a clustert. Ezért írja hogy a usered home mappájában mit hová tegyél.
Lehet jobban járnál egy virtuális géppel és azon belül kialakított chroot jail megoldással. Nem írtad még meg pontosan mit és hogyan szeretnél futtatni.
- A hozzászóláshoz be kell jelentkezni
két különböző gépről beszél, úgy lehet mindkettőnek belül 127.0.0.1-en control plane
Gábriel Ákos
- A hozzászóláshoz be kell jelentkezni
Tehát a fizikai gépen készült egy virtuális, oda belépett és ott hozta létre a K3s clustert abból a virtuális gépből amibe épp be volt jelentkezve?
- A hozzászóláshoz be kell jelentkezni
Nos, a 127.0.0.1:6443 K3s (nem K8s!!) ip cimmel rendelkezik, melyre ssh-val fel tudok jelentkezni.
Nem kene inkabb ezt az IP cimet hasznalni? A localhost IP eleres a notebookomrol tesztelheto valahogy?
Megjegyzes: most nem fontos, mit szeretnek futtatni - csak tudni szeretnem 100%-ra, hogy az adott K3s szerveren vagyok
mint user.
Ardi
- A hozzászóláshoz be kell jelentkezni
Ja, hát én sem Linuxot használok, hanem Ubuntut. :-) (k3s - k8s)
Tehát nem tudod pontosan mire is való a Kubernetes, de használni akarod. Azért érdekel hogy mire szeretnéd használni, mert lehet hogy eleve nem is lesz arra jó és kapásból megkímélhetnéd magad sok-sok szívástól.
Egy fizikai gépen, virtuális gépekben futtatni több K8s K3s clustert max tanulásra, gyakorlásra jó, de értelme nem sok van.
Ha a kubectl paranccsal futtatsz bármit, az az adott K3s szervereden fog lefutni. Ha van egy másik clustered és annak a kubectl konfigját fogod megadni --kubeconfig paraméterrel a kubectl-nek, akkor meg azon.
A 127.0.0.1 ip-ből én arra következtettem hogy a fizikai gépedre telepítetted a K3s-t. Nem így van?
- A hozzászóláshoz be kell jelentkezni
Ja, hát én sem Linuxot használok, hanem Ubuntut. :-) (k3s - k8s) <== Ez tetszik.
Van egy Dell server a cegben es most nem hasznaljak semmire, igy probalgatom a k3s-t.
Es otthonrol, a cegi gepemrol szeretnek mint dedikalt user egy dedikalt namespace-be "zarodni". :-)
Semmi tobb most...
Ardi
- A hozzászóláshoz be kell jelentkezni
"Accessing the Cluster from Outside with kubectl
Copy /etc/rancher/k3s/k3s.yaml on your machine located outside the cluster as ~/.kube/config. Then replace the value of the server field with the IP or name of your K3s server. kubectl can now manage your K3s cluster."
Vagyis ha a konfig fájlt lemásolod a gépedre és átírod a 127.0.0.1-et a szerver IP-jére, akkor ha minden igaz a saját gépedről eléred a clustert kubectl-el. Ez lenne az üzemszerű működés, ekkor tudsz külön config fájlokat gyártani a usereidnek.
Ugye itt a userek lehetőséget kapnak hogy adott namespace-ekbe K8s erőforrásokat hozzanak létre. Ez messze nem egy virtuális gép.
Erőforrás limitet az egyes pod-okra tudsz beállítani, userekre nem. Ha egy szerveren futtatsz szoftvereker egy példányban, akkor kb értelmetlen az egész, kivéve ha tanulási céllal nyomogatod. (Bár én akkor is inkább egy Cloud Providernél lőnék fel egy clustert, max a nap végén leállítanám - pár dollárért cserébe valós környezetben lehet tanulni.)
- A hozzászóláshoz be kell jelentkezni
Copy /etc/rancher/k3s/k3s.yaml on your machine located outside the cluster as ~/.kube/config ==> OK
$ kubectl get nodes
Unable to connect to the server: dial tcp 127.0.0.1:6443: connectex: No connection could be made because the target mach
ine actively refused it.
UPDATE: Atirva a configban a localhost IP-t a szerver cimre:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
server Ready control-plane,master 4d5h v1.25.5+k3s2
UPDATE2:
A config file igy nez ki (kulcsok xxx-re irva)
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: xxx
server: https://server_IP:6443
name: default
contexts:
- context:
cluster: default
user: default
name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
user:
client-certificate-data: xxx
client-key-data: xxx
$ kubectl get ns
NAME STATUS AGE
default Active 4d5h
kube-system Active 4d5h
kube-public Active 4d5h
kube-node-lease Active 4d5h
development-dept Active 23h
$ kubectl get role
NAME CREATED AT
developer 2023-01-23T12:34:33Z
$ kubectl get rolebinding
NAME ROLE AGE
developer-binding-myuser Role/developer 23h
Nos, az a kerdesem, hogyan tudom e configot boviteni myuser-rel es kulcsaival, hogy csak a development-dept namespace-ben tudjon mukodni?
Ardi
- A hozzászóláshoz be kell jelentkezni
Ezt a konfigot hagyd meg így és csinálj mellé másikat: https://vimalpaliwal.com/blog/2019/12/8064ef5f27/how-to-create-a-custom…
Itt elvileg leírnak mindent ami kellhet.
- A hozzászóláshoz be kell jelentkezni
Koszonet - ranezek erre holnap.
Ardi
- A hozzászóláshoz be kell jelentkezni
Asszem, megakadtam a fenn emlitett link alatti leirasban:
1.
Hianyzik ez a sor :
kubectl create namespace brown-fox
mielott ez kovetkezne.
Role for Bill:
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"]
- apiGroups: ["apps"]
resources: ["deployment"]
verbs: ["create", "get", "update", "list", "delete", "watch", "patch"]
- apiGroups: ["rbac.authorization.k8s.io"]
resources: ["clusterroles", "clusterrolebindings"]
verbs: ["create", "get", "list", "watch"]
2.
Itt akadtam meg:
Letrehoztam:
vi config-adam.yaml
vi config-bill.yaml es megprobalom kitolteni: config-adam.yaml file-t
# Fetching Adam's secret
kubectl get secrets -n kube-system
root@server:~# kubectl get secrets -n kube-system
NAME TYPE DATA AGE
k3s-serving kubernetes.io/tls 2 5d1h
server.node-password.k3s Opaque 1 5d1h
sh.helm.release.v1.traefik-crd.v1 helm.sh/release.v1 1 5d1h
sh.helm.release.v1.traefik.v1 helm.sh/release.v1 1 5d1h
adam-secret kubernetes.io/service-account-token 3 12m
root@server:~#
kubectl describe secrets adam-secret -n kube-system
es meglett a token!
Kerdes: alul a hianyzo ??? helyebe mit irok be? adam vagy default
- context:
cluster: default
user: default
name: default
current-context: default
kind: Config
users:
- name: default
user: ??? <---ez hianyzik: adam lenne?:
token: xxx <---ez megvan
Megjegyzes: Nem hasznalok AWS EKS-t!
Ardi
- A hozzászóláshoz be kell jelentkezni
a user struct/dict csak egy token -t tartalmaz ebben az esetben, és ha már nagyon akarod valahova írni az "adam" -ot akkor így tedd:
- name: adam
user:
token: xxx
természetesen ehhez módosítani kell a context-ben is a user nevét.
- A hozzászóláshoz be kell jelentkezni
Hello,
Akkor igy jo lesz mindket user yaml configuracioja?
.
.
.
server: https://server-ip:6443
name: default
contexts:
- context:
cluster: default
user: default
name: default
current-context: default
kind: Config
users:
- name: adam (illetve bill)
user:
token: xxx
Ardi
- A hozzászóláshoz be kell jelentkezni
nem, a context-ben lévő usernek is adam -nak (v bill-nek) kéne lennie.
De ez a név csak a configfile-on belüli referencia, a kubernetes api server természetesen ebből semmit nem fog látni, ő csak a token-t fogja megpróbálni feldolgozni.
- A hozzászóláshoz be kell jelentkezni
Ok - kezdem erteni.
Mukodne, ha a default, adam es bill konfigjat egyetlen fajlba tennem?
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Config
clusters:
- cluster:
server: https://server-ip:6443
name: default
contexts:
- context:
cluster: default
namespace: default
user: default
name: default
- context:
cluster: default
namespace: kube-system
user: adam
name: context-adam
- context:
cluster: default
namespace: brown-fox
user: bill
name: context-bill
current-context: "" #<---???
users:
- name: adam
user:
token: aaaa
- name: bill
user:
token: xxxx
EOF
Mit jelent a current-context: "" #<---???
#mutatja az osszes beallitast?
kubectl config view
#mutatja az aktualisan beallitott contextet
kubectl config get-contexts
#igy valthatok az egyikbe vagy masikba (ez fugg attol, hogy mi van a configban?)
kubectl config use-context context-adam
kubectl config use-context context-bill
#igy valtok vissza default-ba (mi is a default tulajdonkeppen)?
kubectl config use-context default
#esetleg ez
kubectl config use-context context-default
https://kubernetes.io/docs/concepts/configuration/organize-cluster-acce…
https://kubernetes.io/docs/tasks/access-application-cluster/configure-a…
Ardi
- A hozzászóláshoz be kell jelentkezni
"Mukodne, ha a default, adam es bill konfigjat egyetlen fajlba tennem?"
Valószínűleg működne, csak nem sok értelme van. Ha adam tud default context-et használva bármit csinálni, akkor miért használná a sajátját? Ugye minden user úgy fér hozzá a clusterhez hogy kap egy saját konfig fájlt. Ha abban benne van midnen, akkor nem sok értelme van az egésznek.
- A hozzászóláshoz be kell jelentkezni
A current context az csak egy pointer, ha nem adsz meg contextet akkor ezt fogja használni.
Oda teszed ahova akarod.
Ettől függetlenül ha megadod a bármelyik contextet akkor pontosan azt fogja használni.
Gábriel Ákos
- A hozzászóláshoz be kell jelentkezni
Ertem.
Vmi bibi lehet viszont a configgal:
root@server:~# cat config-adam.yaml
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: xxx
server: https://server-ip:6443
name: default
contexts:
- context:
cluster: default
user: adam
name: context-adam
current-context: context-adam
kind: Config
users:
- name: adam
user:
token: xxx
root@server:~#
root@server:~#
root@server:~# kubectl apply -f config-adam.yaml
error: resource mapping not found for name: "" namespace: "" from "config-adam.yaml": no matches for kind "Config" in version "v1"
ensure CRDs are installed first
root@server:~#
Ardi
- A hozzászóláshoz be kell jelentkezni
mint ahogy a hibaüzenet is mondja, nem adtál meg namespace-t a contextben
- A hozzászóláshoz be kell jelentkezni
Koszi a valaszt.
Ezzel mar a valaszod elott is probalkoztam - nem segitett.
root@server:~# ku get ns
NAME STATUS AGE
default Active 5d6h
kube-system Active 5d6h
kube-public Active 5d6h
kube-node-lease Active 5d6h
development-dept Active 2d
brown-fox Active 4h33m
root@server:~#
TESZT1:
contexts:
- context:
cluster: default
namespace: default
user: adam
name: context-adam
current-context: context-adam
kind: Config
preferences: {}
users:
- name: adam
user:
root@server:~# kubectl apply -f config-adam.yaml
error: resource mapping not found for name: "" namespace: "" from "config-adam.yaml": no matches for kind "Config" in version "v1"
ensure CRDs are installed first
root@server:~#
TESZT2:
contexts:
- context:
cluster: default
namespace: brown-fox
user: bill
name: context-bill
current-context: context-bill
kind: Config
preferences: {}
users:
- name: bill
user:
root@server:~# kubectl apply -f config-bill.yaml
error: resource mapping not found for name: "" namespace: "" from "config-bill.yaml": no matches for kind "Config" in version "v1"
ensure CRDs are installed first
Ardi
- A hozzászóláshoz be kell jelentkezni
Bocsánat, nem olvastam el a kérdést.....
SEMMI ÉRTELME nincs "kubectl apply" -olni a kubeconfig-ot.
a kubeconfig-ot csak átadod a kubectl -nek mint "kapcsolódási paraméterek" szinten.....a kubeconfig NEM része a kubernetesnek
amit ki akarsz adni parancs:
kubectl --kubeconfig config-bill.yaml get pods
kubectl --kubeconfig config-adam.yaml get pods
- A hozzászóláshoz be kell jelentkezni
SZUPER!! ==> mukodik.
TESZT1:
Atkopiroztam a config-bill.yaml files a notebookomra, mentettem az eredeti config file-t es ezt tettem be helyette.
#$ kubectl get pods
No resources found in brown-fox namespace.
$ kubectl get ns
Error from server (Forbidden): namespaces is forbidden: User "system:serviceaccount:brown-fox:bill-sa" cannot list resou
rce "namespaces" in API group "" at the cluster scope
TESZT2:
Ugyanezt ismetelve config-adam.yaml file eseteben:
$ kubectl get pods
No resources found in default namespace.
$ kubectl get ns
NAME STATUS AGE
default Active 5d7h
kube-system Active 5d7h
kube-public Active 5d7h
kube-node-lease Active 5d7h
development-dept Active 2d1h
brown-fox Active 5h35m
$ kubectl get role
Error from server (Forbidden): roles.rbac.authorization.k8s.io is forbidden: User "system:serviceaccount:kube-system:ada
m-sa" cannot list resource "roles" in API group "rbac.authorization.k8s.io" in the namespace "default"
$ kubectl get clusterrole|grep adam
adam 2023-01-25T08:39:25Z
$
Megprobalok vmi "helyes" toolokat keresni, amik kiirjak, mit csinalhat egy adott beallitas.
Kezdetnek talan ez is jo: https://www.mankier.com/1/kubectl-auth-can-i
Koszonet mindenkinek, aki segitett!
Ardi
- A hozzászóláshoz be kell jelentkezni
Azt nagyon halkan jegyzem meg, hogy `k3s un. lightweight kubernetes` volt regen. Manapsag alig vesznek ki a mainstreambol dolgokat, mondhatni vanilla Kubernetes (ezt a k3s dev mondja nem en).
- A hozzászóláshoz be kell jelentkezni
Szerintem ez neked hasznos lehet: https://www.hwsw.hu/video/197/virtual-kubernetes-k8s-cluster-vcluster-h…
- A hozzászóláshoz be kell jelentkezni