@startuml

frame "python-tackerclient" {
    component "tacker-client" as client
}

frame "tacker" {
    component "tacker-server" {
        component "server" as serv
    }
    component "tacker-conductor" {
        component "conductor" as cond
        component "Kubernetes\ninfra-driver" as infra
    }
}

node "Kubernetes\nCluster\n(Master)" as k8s_m
cloud "Hardware Resources" as hw {
    node "Kubernetes\nCluster\n(Worker)" as k8s_w {
        node "Pod" as ins1
        node "Pod" as ins2
    }
}


'# Relationships
client --> serv: 1. Request\n scale VNF
serv --> cond
cond --> infra
infra -right-> k8s_m: 2. Call Kubernetes\n API
k8s_m --> ins1: 3. Change the\n number of\n Pods
ins1 -[hidden]right-> ins2

@enduml
