---
title: "Fasáda Kubernetes — Kubernetes API for Laravel | Roundly"
description: "Celá fasáda Kubernetes: skratky pre predvolený klaster, pomenované a ad-hoc klastre, objekt Cluster, priame požiadavky a 33 prístupov k zdrojom."
url: https://roundly-consulting.com/sk/open-source/navody/kubernetes-api-for-laravel/fasada
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Kubernetes API for Laravel](https://roundly-consulting.com/sk/open-source/navody/kubernetes-api-for-laravel.md)

# Fasáda Kubernetes

Všetko začína pri fasáde Kubernetes (RoundlyConsulting\\KubernetesApi\\Facades\\Kubernetes). Vydáva klastre — nemenných klientov — a cez ne objekty zdrojov (Pod, Deployment, …), ktoré čítajú a zapisujú do apiservera. Volania bez mena klastra idú na predvolený klaster z config/kubernetes.php:

```php
use RoundlyConsulting\KubernetesApi\Facades\Kubernetes;

Kubernetes::pods()->get();                                   // default cluster, default namespace
Kubernetes::namespace('shop')->deployments()->get();         // default cluster, scoped to shop
Kubernetes::cluster('production')->services()->get();        // a named cluster

Kubernetes::ping();                                          // bool — does the apiserver answer?
Kubernetes::version()->gitVersion;                           // "v1.34.0" (a VersionInfo DTO)

Kubernetes::hasCluster('production');                        // bool
Kubernetes::clusters();                                      // ['default', 'production']

Kubernetes::url('https://127.0.0.1:6443')->withToken($token); // a new, blank ad-hoc cluster
Kubernetes::fromKubeConfig(context: 'staging');              // a new cluster from a kubeconfig context
```

## Prehľad metód

| Metóda | Vracia | Čo robí |
| --- | --- | --- |
| `cluster(?string $name = null)` | `Cluster` | Nakonfigurovaný alebo zaregistrovaný klaster — pri null predvolený. Vytvorí sa raz a potom sa znova používa. |
| `hasCluster(string $name) · clusters()` | `bool · list<string>` | Či klaster existuje; mená všetkých nakonfigurovaných a zaregistrovaných klastrov. |
| `registerCluster(string $name, Closure $definition)` | `void` | Definuje klaster v kóde; prepíše nakonfigurovaný klaster s rovnakým menom. |
| `registerResource(string $name, string $class)` | `void` | Zaregistruje triedu zdroja pod menom prístupu pre všetky klastre. |
| `namespace(string $namespace)` | `Cluster` | Predvolený klaster obmedzený na jeden namespace. |
| `ping() · version()` | `bool · VersionInfo` | Dostupnosť a informácie o zostavení predvoleného klastra. |
| `url(string $url)` | `Cluster` | Nový, prázdny ad-hoc klaster. |
| `connect(KubeConfig $config)` | `Cluster` | Nový ad-hoc klaster z vyriešeného pripojenia; jeho namespace, ak ho má, sa stane predvoleným. |
| `fromKubeConfig(?string $path, ?string $context) · inCluster()` | `Cluster` | Nový ad-hoc klaster z kontextu kubeconfigu (jeho namespace sa stane predvoleným) alebo zo service accountu podu (súbor s tokenom sa načíta pri každej požiadavke). |
| `resource(string $class)` | `Resource` | Ľubovoľná trieda zdroja naviazaná na predvolený klaster. |
| `pods(), deployments(), services(), … (33 prístupov)` | zdroj | Každý zdroj balíka naviazaný na predvolený klaster. |
| `apps(), tenantNamespace(), …` | zdroj / výsledok makra | Vlastný zdroj zaregistrovaný pod týmto menom alebo makro triedy Cluster — na predvolenom klastri. |
| `fake()` | `KubernetesFake` | Nahradí apiserver verziou v pamäti pre testy — pozrite Testovanie. Pod fake fasáda sprostredkuje aj overenia fake vrátane assertTokenRequested(). |

## Objekt Cluster

cluster(), namespace(), url(), connect(), fromKubeConfig() aj inCluster() vracajú RoundlyConsulting\\KubernetesApi\\Cluster. Každý Cluster má tých istých 33 prístupov ako fasáda a k tomu vlastnú identitu, kontrolu dostupnosti a metódu request() na priame požiadavky — s autentifikáciou, limitmi aj podporou fake ako všetko ostatné:

```php
$cluster = Kubernetes::cluster('production');

$cluster->name();                   // 'production' (null for ad-hoc clusters)
$cluster->defaultNamespace();       // from clusters.production.namespace
$cluster->hasResource('apps');      // is an accessor registered under that name?
$cluster->getUrl();                 // plus getToken(), getTokenFile(), getManagerName(), shouldVerify()…
$cluster->followsRedirects();       // false unless the cluster opted in
$cluster->redactsErrors();          // whether exception messages carry status + reason only

// Raw escape hatch — authenticated, rate limited and faked like the typed resources
$response = $cluster->request('GET', '/apis/apps/v1/namespaces/shop/deployments', ['limit' => 10]);
$response->json('items');
```

| Metóda Cluster | Vracia | Poznámka |
| --- | --- | --- |
| `name()` | `?string` | Meno z registrácie; null pri ad-hoc klastroch (url(), connect(), fromKubeConfig(), inCluster()). |
| `url() · with…() · without…() · withManagerName() · withDefaultNamespace()` | kópia | Pripojenie a prihlasovacie údaje — pozrite Pripojenie ku klastru. |
| `namespace(string) · namespaceScope()` | `Cluster · ?string` | Kópia obmedzená na jeden namespace; aktuálne obmedzenie, ak nejaké je. |
| `defaultNamespace()` | `string` | Mäkký predvolený namespace pre zdroje v namespace. |
| `withRedirects() · withoutRedirects() · followsRedirects()` | kópia · kópia · bool | Povolí nasledovanie HTTP presmerovaní — predvolene vypnuté; pozrite Pripojenie ku klastru. |
| `withRedactedErrors() · redactsErrors()` | kópia · bool | Správy výnimiek len so stavom a dôvodom; pozrite Spracovanie chýb. |
| `applyConfig(KubeConfig)` | kópia | Nahradí URL, token, súbor s tokenom, certifikát, kľúč, CA aj overovanie; namespace sa stane predvoleným (nikdy nie cez obmedzenie na namespace). Povolenie presmerovaní aj skracovanie chýb zostávajú. |
| `resource(class-string) · hasResource(string)` | `Resource · bool` | Ľubovoľná trieda zdroja naviazaná na tento klaster; či je meno prístupu zaregistrované. |
| `ping() · version()` | `bool · VersionInfo` | ping() vráti false pri chybe apiservera (vrátane nenasledovaného presmerovania), zlyhaní spojenia alebo chýbajúcej URL; vyčerpaný limit požiadaviek sa naďalej vyhodí. |
| `request($method, $path, $query = [], $body = '', $contentType = null, $stream = false)` | `Response` | Priama požiadavka cez transport klastra; neúspešná odpoveď vyhodí KubernetesException, rovnako ako presmerovanie, ktoré sa nenasledovalo. |
| `getUrl() · getToken() · getTokenFile() · getManagerName() · shouldVerify() · getPathTo…()` | čítanie | Prihlasovacie údaje, ktoré klaster nesie. |

- Klastre sú nemenné: každé volanie with…() / without…(), url(), withManagerName(), withDefaultNamespace() aj namespace() vráti nový klaster, takže klienta z fasády nemôže iný volajúci presmerovať ani mu vymeniť prihlasovacie údaje.
- Pomenované klastre sa vytvoria raz a potom sa znova používajú; url(), connect(), fromKubeConfig() a inCluster() pri každom volaní vytvoria nový ad-hoc klaster.
- Cluster::execute() je @internal — otvára WebSocket pre Pod::exec(); namiesto neho volajte exec() na pode.

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/kubernetes-api-for-laravel.md)
