def k8s(name): with Cluster(name): with Cluster('ns: onepanel'): svc_core = Service('core') pd_core = Pod('core-*') dep_core = Deployment('core') dep_core >> pd_core svc_core >> pd_core svc_core_ui = Service('core-ui') pd_core_ui = Pod('core-ui-*') dep_core_ui = Deployment('core-ui') dep_core_ui >> pd_core_ui svc_core_ui >> pd_core_ui with Cluster('ns: istio-system'): ing = Ingress('istio-ingressgateway') # cert = Secret('TLS') with Cluster('ns: my-project'): with Cluster('Workspace'): svc_workspace = Service('jupyterlab') pd_workspace = Pod('jupyterlab-*') pv_workspace = PV('jupyterlab-data-0') sts_workspace = StatefulSet('jupyterlab') sts_workspace >> pd_workspace pd_workspace - pv_workspace svc_workspace >> pd_workspace # with Cluster('ns: cert-manager'): # certmanager = Pod('cert-manager') # certmanager >> cert ing >> [svc_core, svc_core_ui, svc_workspace] node_1 = Node('node-1') node_2 = Node('node-2') node_3 = Node('node-2') pd_core - node_1 pd_core - node_2 pd_core_ui - node_1 pd_core_ui - node_2 pd_workspace - node_3 return node_1, node_2, node_3, ing, pd_core, pv_workspace
with Diagram(filename="jitsi_meet", direction='TB', show=False, outformat='png', graph_attr=graph_attr): with Cluster("Conference 1"): users_1 = [Custom("user", globe_img) for _ in range(3)] with Cluster("Conference 2"): users_2 = [Custom("user", globe_img) for _ in range(2)] all_users = Custom("all users", globe_img) with Cluster("Namespace 'jitsi'"): n_shards = 2 n_haproxy = 2 haproxy_sts = StatefulSet("haproxy") haproxy_pods = [Pod(f"haproxy-{j}") for j in range(n_haproxy)] haproxy_sts >> haproxy_pods web_service = Service("web") ingress = Ingress("jitsi.messenger.schule") ingress >> Service("haproxy") >> haproxy_pods >> web_service for k in range(n_shards): with Cluster(f"Shard-{k}"): web_pod = Pod(f"shard-{k}-web") prosody_pod = Pod(f"shard-{k}-prosody") jicofo_pod = Pod(f"shard-{k}-jicofo") Deployment(f"shard-{k}-prosody") >> prosody_pod Deployment(f"shard-{k}-jicofo") >> jicofo_pod web_service >> web_pod prosody_service = Service(f"shard-{k}-prosody")
from diagrams import Cluster, Diagram from diagrams.k8s.compute import Pod, StatefulSet from diagrams.k8s.network import Service from diagrams.k8s.storage import PV, PVC, StorageClass with Diagram("Stateful Architecture", show=False): with Cluster("Apps"): svc = Service("svc") sts = StatefulSet("sts") apps = [] for _ in range(3): pod = Pod("pod") pvc = PVC("pvc") pod - sts - pvc apps.append(svc >> pod >> pvc) apps << PV("pv") << StorageClass("sc")
from diagrams import Diagram, Cluster from diagrams.k8s.network import Ingress, Service from diagrams.k8s.compute import StatefulSet, Pod from diagrams.k8s.storage import PV from diagrams.k8s.infra import Node with Diagram("Standard Kubernetes Install", show=False, direction="LR"): ing = Ingress("trow.io") svc = Service("trow-svc") ing >> svc pod = Pod("trow") StatefulSet("trow-set") - pod pod - PV("data-vol") svc >> pod with Cluster("Nodes"): workers = [Node("Node 1"), Node("Node 2"), Node("Node 3")] workers >> ing
# Resources pgpool_dep = Deployment("Pgpool Deployment") pgpool_rs = ReplicaSet("Pgpool ReplicaSet") pgpool_replica_set_count = 1 pgpool_pods = [ Pod("Pgpool Pod") for pod in range(0, pgpool_replica_set_count, 1) ] pgpool_svc = Service("Pgpool Service") # Relationships pgpool_dep >> pgpool_rs >> pgpool_pods << pgpool_svc # PostgreSQL # Resources db_sset = StatefulSet("PostgreSQL StatefulSet") db_stateful_set_count = 3 db_svc = Service("DB Service") sc = StorageClass("Storage Class (SSD)") db_pods = [] for _ in range(db_stateful_set_count): db_pod = Pod("DB Pod") db_pvc = PersistentVolumeClaim("DB PVC") db_pv = PersistentVolume("DB PV") # Relationships sc << db_pv << db_pvc << db_pod >> db_sset db_pods.append(db_pod << db_svc) # Relationships app_pods << app_svc_int << app_lb_int << app_fw
from diagrams.k8s.compute import Deployment from diagrams.k8s.compute import StatefulSet from diagrams.k8s.infra import Node from diagrams.k8s.compute import ReplicaSet from diagrams.k8s.network import Service with Diagram("kubernetes getting started", show=False): node = Node("Node") inet = Internet("Kubernetes") vol = Volume("Volumes") cm = ConfigMap("ConfigMap") secret = ConfigMap("Secret") pod = ConfigMap("Pod") ingress = Ingress("Ingress") depl = Deployment("Deployment") ss = StatefulSet("StatefulSet") service = Service("Service") rs = ReplicaSet("Replication") node << inet pod << inet service << inet ingress << inet rs << inet inet >> cm inet >> secret inet >> vol inet >> depl inet >> ss