Permet des mises à jour d'images sans temps de coupure
---
...
spec:
...
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 0
...
maxUnavailable
: défini le nombre maximal de replicas indisponiblesmaxSurge
: défini le nombre maximal de replicas à mettre à jour en même tempsEnsuite, mettre à jour l'image avec:
kubectl set image deployment/<nom déploiement> <nom conteneur>=<nouvelle image:tag>
But:
But:
But:
kubectl autoscale deployment <nom déploiement> \
--cpu-percent=50 --min=1 --max=10
Demande au cluster de créer entre min
et max
replicas selon la charge du CPU du nœud
Compliqué à mettre en place sur sa propre infra étant donné qu'il faut changer les ressources des machines.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: test-ingress
spec:
defaultBackend:
service:
name: testsvc
port:
number: 80
❯ kubectl get ingress test-ingress
NAME HOSTS ADDRESS PORTS AGE
test-ingress * 107.178.254.228 80 59s
...
- host: foo.bar.com
http:
paths:
- path: /foo
pathType: Prefix
backend:
service:
name: service1
port:
number: 4200
- path: /bar
pathType: Prefix
backend:
service:
name: service2
port:
number: 8080
Pour créer les rôles (au sens large)
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""] # "" indicates the core API group
resources: ["pods"]
verbs: ["get", "watch", "list"]
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
# pas de "namespace"
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
Pour accorder les rôles (au sens large) à un.e ou des utilisat(eur|rice)s, ou un groupe
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: default
subjects:
- kind: User
name: jane # sensible à la casse
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io