- manipuler le cluster avec kubectl
- comprendre les namespaces
Création d'un alias pour simplifier l'écriture des commandes
alias k=kubetcl
nb: pas requis, mais fait gagner du temps sur des commandes parfois longues..
Aide de kubectl
k --help
Aide sur la ressource Pod
k explain pods
Aide sur l'exectution de la commande run
d'un pod
k run pod --help
Pour lister tous les types de ressources et leur alias
kubectl api-resources
Kubectl utilise un fichier ~/.kube/config
pour stocker les informations du cluster
- Serveurs (IP, CA Cert, Nom)
- Users (Nom, Certificat, Clé)
- Context, association d'un user et d'un Serveurs
cat ~/.kube/config
Afficher les infos du cluster
k config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://10.0.0.10:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: kubernetes-admin
name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
Check cluster infos / IP
k cluster-info
Kubernetes control plane is running at https://10.0.0.10:6443
CoreDNS is running at https://10.0.0.10:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
Lister les namespaces
k get ns
Création d'un nouveau namespace learnk8
en ligne de commande
k create ns learnk8
Supprimer un Namespace
k delete ns learnk8
Recommandé : création d'un nouveau namespace via fichier de spécification Yaml
k create ns learnk8 --dry-run=client -o yaml > namespace.yaml
cat namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
creationTimestamp: null
name: learnk8
spec: {}
status: {}
vagrant@mast
Appliquer cette config à notre cluster
k apply -f namespace.yaml
namespace/learnk8 created
Voir les informations du namespace, dont les limites, quotas, etc
kubectl describe namespace learnk8
Name: learnk8
Labels: kubernetes.io/metadata.name=learnk8
Annotations: <none>
Status: Active
No resource quota.
No LimitRange resource.
Utilisation du context pour basculer vers le namespace learnk8
par défaut
k config set-context --current --namespace=learnk8
Vérifer le contexte et cluster courant
k config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://10.0.0.10:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
namespace: learnk8
user: kubernetes-admin
name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
Tips: possible de cibler le champ avec le format jsonpath
k config view -o jsonpath='{.contexts[].context.namespace}'