Skip to content

Service

Services expose applications running on a set of pods.

Basic Usage

php
use RenokiCo\PhpK8s\K8s;
use RenokiCo\PhpK8s\Enums\ServiceType;

$service = K8s::service($cluster)
    ->setName('web-service')
    ->setNamespace('default')
    ->setType(ServiceType::LOAD_BALANCER)
    ->setSelectors(['app' => 'web'])
    ->setPorts([
        K8s::servicePort()
            ->setName('http')
            ->setProtocol('TCP')
            ->setPort(80)
            ->setTargetPort(8080)
    ])
    ->create();

Service Types

php
// ClusterIP (default)
$service->setType(ServiceType::CLUSTER_IP);

// NodePort
$service->setType(ServiceType::NODE_PORT);

// LoadBalancer
$service->setType(ServiceType::LOAD_BALANCER);

// ExternalName
$service->setType(ServiceType::EXTERNAL_NAME);

Get Service Details

php
$service->refresh();

if ($service->getType() === ServiceType::LOAD_BALANCER) {
    echo "LoadBalancer IP: {$service->getLoadBalancerIp()}\n";
}

echo "Cluster IP: {$service->getClusterIp()}\n";

Originally from renoki-co/php-k8s documentation, adapted for cuppett/php-k8s fork

Released under the Apache-2.0 License. Originally from renoki-co/php-k8s.