Skip to content
Snippets Groups Projects
Unverified Commit c766cfc1 authored by Alex's avatar Alex Committed by GitHub
Browse files

documentation: added diagrams

parent e63a2a9c
No related branches found
No related tags found
1 merge request!2repo: added new directory where utils scripts will be
## Work in progress
## Components in inter-cluster scenario:
Ejemplo de network inter: <p align="center">
<img src="../assets/inter-cluster-arch.svg" width="600">
</p>
```yaml ## Sequence Diagram
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
name: sample-inter-network
spec:
config: '{
"cniVersion": "0.3.0",
"type": "l2sm",
"device": "l2sm-vNet",
"kind": {
"ext-vnet": {
"provider": {
"name": "<idco-name>",
"domain": "<domain-name>"
},
"accessList": [ # no tiene porq ser así. Dejar en abierto.
# {
# "user": "<username-1>",
# "public-key": "<public-key-1>"
# },
# {
# "user": "<username-2>",
# "public-key": "<public-key-2>"
# },
# {
# "user": "<username-3>",
# "public-key": "<public-key-3>"
# }
]
}
}
}'
```
Hay un NED conectado al L2S-M switch del nodo master con 10 interfaces veth (como el NED es hostNetwork, nos podemos permitir crear las interfaces y conectarlas directamente -> Necesario que l2sm-switch se despliegue más tarde).
Se crea esta red en cada clúster usando el L2S-M k8s Client. Es necesario para esto: <p align="center">
- Que cada cluster tenga previamente un cluster role para poder dar permisos de crear network attachment definitions. <img src="../assets/inter-cluster-diagram.svg" width="600">
</p>
Se crea un network con el mismo nombre dentro del host. Operador avisa al idco de que se ha conectado a la interfaz, se dice cual es el veth empleado. El idco anota, pero no añade aún.
## YAML examples:
Se crea una firma (en local, se puede dar un script en conjunto para hacer que esto se haga en una línea de comandos)) en forma secret dentro del cluster con la private key, se pone dentro como anotacion en el pod, en conjunto con el nombre del usuario. el operador puede leerla. ### Inter cluster network example:
En esta key hay un timestamp, el nombre de la red, identificador del usuario. ```yaml
apiVersion: l2sm.k8s.local/v1
kind: L2SMNetwork
metadata:
name: spain-network
spec:
type: inter-vnet
config: |
{
"provider": {
"name": "uc3m",
"domain": "idco.uc3m.es"
},
"accessList": ["public-key-1", "public-key-2"]
}
signature: sxySO0jHw4h1kcqO/LMLDgOoOeH8dOn8vZWv4KMBq0upxz3lcbl+o/36JefpEwSlBJ6ukuKiQ79L4rsmmZgglk6y/VL54DFyLfPw9RJn3mzl99YE4qCaHyEBANSw+d5hPaJ/I8q+AMtjrYpglMTRPf0iMZQMNtMd0CdeX2V8aZOPCQP75PsZkWukPdoAK/++y1vbFQ6nQKagvpUZfr7Ecb4/QY+hIAzepm6N6lNiFNTgj6lGTrFK0qCVfRhMD+vXbBP6xzZjB2N1nIheK9vx7kvj3HORjZ+odVMa+AOU5ShSKpzXTvknrtcRTcWWmXPNUZLoq5k3U+z1g1OTFcjMdQ====
```
### Pod creation and attachment
```yaml ```yaml
apiVersion: v1 apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
name: sample-one-authorization-key name: inter-vnet-example-signature
type: Opaque type: Opaque
data: data:
public-key.pem: <firma> public-key.pem: <firma>
``` ```
Se attachea al pod, en el campo de spec. Quedaría así:
```yaml ```yaml
apiVersion: v1 apiVersion: v1
...@@ -74,11 +62,15 @@ spec: ...@@ -74,11 +62,15 @@ spec:
- name: ping - name: ping
image: busybox image: busybox
volumes: volumes:
- name: authorization-key-volume - name: inter-vnet-signature
secret: secret:
secretName: sample-one-authorization-key secretName: inter-vnet-example-signature
``` ```
Se avisa al operador, y este avisa a ambos controladores, siendo estos los que se encargan de comprobar la firma. -> Y ver si hay autorización Se avisa al operador, y este avisa a ambos controladores, siendo estos los que se encargan de comprobar la firma. -> Y ver si hay autorización
Si no es autorizado, el intent del NED no se crea en el controlador, si es autorizado, se hace intent desde NED, la interfaz veth que corresponda con la que el operador solicita. Si no es autorizado, el intent del NED no se crea en el controlador, si es autorizado, se hace intent desde NED, la interfaz veth que corresponda con la que el operador solicita.
......
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment