Multi-Tenancy

Okteto Cloud gives you access to a vanilla Kubernetes namespace in a multi-tenant environment. Okteto uses a combination of RBAC, pod security policies, resource quotas, network policies, admission controllers and custom code to ensure that Okteto Cloud namespaces are isolated, secure and easy to use for everyone.

This document explain the limitations and restrictions most likely to affect your applications in Okteto Cloud.

Exposing services

NodePort or LoadBalancer services are not supported in Okteto Cloud. Okteto Cloud lets you expose your services to the public using ingress rules. More information is available here.

Pod Security Policies

Okteto Cloud configures pod security policies to limit the privileges of your applications. The following options are not allowed: privileged, hostNetwork, allowPrivilegeEscalation, hostPID, hostIPC. Mounting volume host paths is also not allowed.

Resource quotas

The following resource quotas are associated to every namespace created in Okteto Cloud:

Resource Quota
CPU 4 CPUs
Memory 8Gi
Storage 150Gi
Pods 20
Replication Controllers 20
Services 10
Secrets 20
Config Maps 20
Persistent Volume Claims 15

Network policies

Okteto Cloud configures network policies for each namespace. Only traffic between the pods running in the same namespace is allowed, as well as external traffic to the internet.

RBAC

Okteto Cloud uses RBAC rules to limit the access to the Kubernetes API. The supported endpoints are:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
- apiGroups:
- ""
resources:
- pods
- pods/log
- pods/exec
- pods/attach
- pods/portforward
- configmaps
- secrets
- services
- endpoints
- events
- persistentvolumeclaims
- persistentvolumes
- replicationcontrollers
verbs:
- '*'
- apiGroups:
- apps
resources:
- daemonsets
- deployments
- replicasets
- statefulsets
verbs:
- '*'
- apiGroups:
- batch
resources:
- cronjobs
- jobs
verbs:
- '*'
- apiGroups:
- extensions
resources:
- deployments
- ingresses
- replicasets
verbs:
- '*'
- apiGroups:
- ""
resources:
- events
- limitranges
- namespaces
- namespaces/status
- resourcequotas
- resourcequotas/status
verbs:
- get
- list
- apiGroups:
- metrics.k8s.io
resources:
- pods
verbs:
- get
- list
- apiGroups:
- autoscaling
resources:
- horizontalpodautoscalers
verbs:
- '*'