Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
elearning:workbooks:kubernetes_en:k8s00 [2024/12/26 09:40] – created admin | elearning:workbooks:kubernetes_en:k8s00 [2025/01/17 16:37] (Version actuelle) – admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
~~PDF: | ~~PDF: | ||
- | Version - **2024.01** | + | Version - **2025.01** |
Last update : ~~LASTMOD~~ | Last update : ~~LASTMOD~~ | ||
- | ======DOF301 | + | ======DOE301 |
- | =====Module content===== | + | =====Curriculum===== |
- | * **DOF301 | + | |
- | * Module content | + | * Curriculum |
- | * Container Orchestration | + | * Container Orchestration |
- | * Introduction to Kubernetes (k8s) | + | * Introduction to Kubernetes (k8s) |
- | * Master | + | * Control Plane |
- | * Nodes (Minions) | + | * Controller |
- | * LAB #1 - Creating a Kubernetes cluster with Virtual Machines | + | |
- | * 1.1 - Overview | + | * LAB #1 - Creating a Kubernetes cluster with Virtual Machines |
- | * 1.2 - Connecting to the kubemaster | + | * 1.1 - Overview |
- | * 1.3 - Testing the network | + | * 1.2 - Connecting to the kubemaster |
- | * 1.4 - Initializing the Cluster | + | * 1.3 - Testing the network |
- | * 1.5 - Installing a Network Extension for communication between PODs | + | * 1.4 - Initializing the Cluster |
- | * 1.6 - Connecting workers to the Master | + | * 1.5 - Installing a Network Extension for communication between PODs |
- | * 1.7 - K8s and High Availability | + | * 1.6 - Connecting workers to the Controller |
- | * LAB #2 - Creating a Kubernetes cluster with Minikube | + | * 1.7 - K8s and High Availability |
- | * 2.1 - Introducing Minikube | + | * LAB #2 - Creating a Kubernetes cluster with Minikube |
- | * 2.2 - Installing Minikube | + | * 2.1 - Introducing Minikube |
- | * 2.3 - Configuring Minikube | + | * 2.2 - Installing Minikube |
- | * 2.4 - Installing Docker | + | * 2.3 - Configuring Minikube |
- | * 2.5 - Installing kubectl | + | * 2.4 - Installing Docker |
- | * 2.6 - The minikube addons command | + | * 2.5 - Installing kubectl |
- | * 2.7 - The minikube dashboard | + | * 2.6 - The minikube addons command |
+ | * 2.7 - The minikube dashboard | ||
=====VirtualBoxes===== | =====VirtualBoxes===== | ||
- | * [[https:// | + | |
- | * [[https:// | + | * [[https:// |
- | * [[https:// | + | * [[https:// |
- | + | ||
- | =====Resources===== | + | |
- | + | ||
- | ====Lab #1==== | + | |
- | + | ||
- | * [[https:// | + | |
=====Container orchestration===== | =====Container orchestration===== | ||
Ligne 49: | Ligne 44: | ||
The main containerization solutions are : | The main containerization solutions are : | ||
- | * **[[https:// | + | |
- | * **[[https:// | + | * **[[https:// |
- | * **[[https:// | + | * **[[https:// |
The main container orchestration solutions are: | The main container orchestration solutions are: | ||
- | * **[[https:// | + | |
- | * **[[https:// | + | * **[[https:// |
- | * **[[https:// | + | * **[[https:// |
Container orchestration provides: | Container orchestration provides: | ||
- | * High availability, | + | |
- | * Load balancing, | + | * Load balancing, |
- | * Scale up and scale down services. | + | * Scale up and scale down services. |
=====Introduction to Kubernetes (k8s)===== | =====Introduction to Kubernetes (k8s)===== | ||
Ligne 73: | Ligne 68: | ||
The Control Plane is a collection of services responsible for managing the K8s cluster: | The Control Plane is a collection of services responsible for managing the K8s cluster: | ||
- | * **kube-api-server**, | + | |
- | * Main interface to the Control Plane, | + | * Main interface to the Control Plane, |
- | * **Etcd**, | + | * **Etcd**, |
- | * Key-value store, which stores all data used to manage the cluster and manage locks, | + | * Key-value store, which stores all data used to manage the cluster and manage locks, |
- | * **kube-controller-manager**, | + | * **kube-controller-manager**, |
- | * Monitors the status of containers, nodes and end-points. Responsible for setting up new containers in the event of failures. | + | * Monitors the status of containers, nodes and end-points. Responsible for setting up new containers in the event of failures. |
- | * **kube-scheduler**, | + | * **kube-scheduler**, |
- | * Distributes existing containers to nodes and searches for new containers and allocates them to nodes. | + | * Distributes existing containers to nodes and searches for new containers and allocates them to nodes. |
- | * **cloud-controller-manager**, | + | * **cloud-controller-manager**, |
- | * Provides an interface between K8s and the infrastructures of public cloud providers such as AWS and Azure. | + | * Provides an interface between K8s and the infrastructures of public cloud providers such as AWS and Azure. |
Theoretically, | Theoretically, | ||
Ligne 99: | Ligne 94: | ||
====Nodes (Minions) ==== | ====Nodes (Minions) ==== | ||
- | * Physical or virtual machine on which Kubernetes is installed, | + | |
- | * A worker on which Kubernetes launches containers, | + | * A worker on which Kubernetes launches containers, |
The Node contains : | The Node contains : | ||
- | * **kubelet**, | + | |
- | * agent running on each node, | + | * agent running on each node, |
- | * responsible for monitoring containers. | + | * responsible for monitoring containers. |
- | * It obtains its instructions from the Control Plane and communicates the status of the node and containers to the Control Plane, | + | * It obtains its instructions from the Control Plane and communicates the status of the node and containers to the Control Plane, |
- | * **Container runtime**, | + | * **Container runtime**, |
- | * Docker, | + | * Docker, |
- | * Containerd, | + | * Containerd, |
- | * CRI-O (crio), | + | * CRI-O (crio), |
- | * **kube-proxy**, | + | * **kube-proxy**, |
- | * a network proxy that handles networking tasks between containers and services in the cluster.cloud_user | + | * a network proxy that handles networking tasks between containers and services in the cluster.cloud_user |
Certain ports must be open on each worker node: | Certain ports must be open on each worker node: | ||
Ligne 123: | Ligne 118: | ||
=====LAB #1 - Creating a Kubernetes cluster with Virtual Machines===== | =====LAB #1 - Creating a Kubernetes cluster with Virtual Machines===== | ||
- | ====.1 - Overview==== | + | ====1.1 - Overview==== |
Note that the virtual machines used with Kubernetes must be running one of the following distributions: | Note that the virtual machines used with Kubernetes must be running one of the following distributions: | ||
- | * Ubuntu 16.04+, | + | |
- | * Debian 9+, | + | * Debian 9+, |
- | * CentOS 7, | + | * CentOS 7, |
- | * RHEL 7, | + | * RHEL 7, |
- | * Fedora 25+, | + | * Fedora 25+, |
- | * HypriotOS v1.0.1+, | + | * HypriotOS v1.0.1+, |
- | * Flatcar Container Linux (tested with 2512.3.0). | + | * Flatcar Container Linux (tested with 2512.3.0). |
Each machine must have : | Each machine must have : | ||
- | * A minimum of 2 GB RAM, | + | |
- | * A minimum of 2 CPUs. | + | * A minimum of 2 CPUs. |
Machines must : | Machines must : | ||
- | * be on the same network, | + | |
- | * have a unique host name, a unique MAC address and a unique product_uuid, | + | * have a unique host name, a unique MAC address and a unique product_uuid, |
- | * have swap **disabled**, | + | * have swap **disabled**, |
- | * use of **dnsmasq** by NetworkManager under Systemd **disabled**. | + | * use of **dnsmasq** by NetworkManager under Systemd **disabled**. |
Three **Debian 9** virtual machines were configured according to the table below: | Three **Debian 9** virtual machines were configured according to the table below: | ||
^ Virtual Machine ^ Host name ^ Interface 1 ^ Interface 2 ^ | ^ Virtual Machine ^ Host name ^ Interface 1 ^ Interface 2 ^ | ||
- | | kubemaster.ittraining.loc | 10.0.2.65 | 192.168.56.2 | | + | | kubemaster |
| kubenode1 | kubenode1.ittraining.loc | 10.0.2.66 | 192.168.56.3 | | | kubenode1 | kubenode1.ittraining.loc | 10.0.2.66 | 192.168.56.3 | | ||
| kubenode2 | kubenode2.ittraining.loc | 10.0.2.67 | 192.168.56.4 | | | kubenode2 | kubenode2.ittraining.loc | 10.0.2.67 | 192.168.56.4 | | ||
Ligne 157: | Ligne 152: | ||
^ User ^ Password ^ | ^ User ^ Password ^ | ||
- | | trainee | | + | | trainee |
| root | fenestros | | | root | fenestros | | ||
Ligne 164: | Ligne 159: | ||
</ | </ | ||
- | ====.2 - Connecting to the kubemaster==== | + | ====1.2 - Connecting to the kubemaster==== |
Type the following command to connect to the **kubemaster** machine: | Type the following command to connect to the **kubemaster** machine: | ||
Ligne 172: | Ligne 167: | ||
</ | </ | ||
- | ====.3 - Testing the network==== | + | ====1.3 - Testing the network==== |
Check the connectivity of each virtual machine: | Check the connectivity of each virtual machine: | ||
Ligne 209: | Ligne 204: | ||
</ | </ | ||
- | Become a **root** | + | Become a the **root** |
< | < | ||
Ligne 216: | Ligne 211: | ||
</ | </ | ||
- | ====.4 - Cluster | + | ====1.4 - Initializing the Cluster |
Remove any previous Kubernetes configuration: | Remove any previous Kubernetes configuration: | ||
Ligne 285: | Ligne 280: | ||
</ | </ | ||
- | Download | + | Download |
< | < | ||
Ligne 310: | Ligne 305: | ||
</ | </ | ||
- | Initialize the **kubemaster** cluster | + | Initialize the **kubemaster** cluster |
< | < | ||
Ligne 419: | Ligne 414: | ||
</ | </ | ||
- | ====.5 - Installing a Network Extension for communication between PODs==== | + | ====1.5 - Installing a Network Extension for communication between PODs==== |
Use the **kubectl** command to view the **pods** currently running: | Use the **kubectl** command to view the **pods** currently running: | ||
Ligne 425: | Ligne 420: | ||
< | < | ||
root@kubemaster: | root@kubemaster: | ||
- | NAME READY STATUS RESTARTS AGE | + | NAME READY |
- | coredns-6d4b75cb6d-dw4ph 0/1 Pending 0 7m28s | + | coredns-6d4b75cb6d-dw4ph |
- | coredns-6d4b75cb6d-ms2jm 0/1 Pending 0 7m28s | + | coredns-6d4b75cb6d-ms2jm |
- | etcd-kubemaster.ittraining.loc 1/1 Running 0 7m42s | + | etcd-kubemaster.ittraining.loc |
- | kube-apiserver-kubemaster.ittraining.loc 1/1 Running 0 7m42s | + | kube-apiserver-kubemaster.ittraining.loc |
- | kube-controller-manager-kubemaster.ittraining.loc 1/1 Running 0 7m42s | + | kube-controller-manager-kubemaster.ittraining.loc |
- | kube-proxy-jx76x 1/1 Running 0 7m29s | + | kube-proxy-jx76x |
- | kube-scheduler-kubemaster.ittraining.loc 1/1 Running 0 7m42s | + | kube-scheduler-kubemaster.ittraining.loc |
</ | </ | ||
Ligne 441: | Ligne 436: | ||
Note that both **coredns** pods are in a **pending** state. To switch the coredns state to running and enable the pods to communicate with each other, you need to install a network extension. There are several extensions, which we'll come back to later in this course: | Note that both **coredns** pods are in a **pending** state. To switch the coredns state to running and enable the pods to communicate with each other, you need to install a network extension. There are several extensions, which we'll come back to later in this course: | ||
- | * **[[https:// | + | |
- | * **[[https:// | + | * **[[https:// |
- | * **[[https:// | + | * **[[https:// |
- | * **[[https:// | + | * **[[https:// |
- | * **[[https:// | + | * **[[https:// |
- | * **[[https:// | + | * **[[https:// |
- | * **[[https:// | + | * **[[https:// |
- | * **[[https:// | + | * **[[https:// |
- | * Channel (uses Flannel for the network and Calico for the firewall). | + | * Channel (uses Flannel for the network and Calico for the firewall). |
To get a working cluster, we'll use the first extension on the list, namely **Calico** : | To get a working cluster, we'll use the first extension on the list, namely **Calico** : | ||
Ligne 484: | Ligne 479: | ||
</ | </ | ||
- | ====.6 - Connecting workers to the Master==== | + | <WRAP center round important 60%> |
+ | Important: If your unable to download the **calico.yaml** file above, download it from **[[https:// | ||
+ | </ | ||
+ | |||
+ | ====1.6 - Connecting workers to the Controller==== | ||
Run the command **kubeadm token create --print-join-command** and copy the command output : | Run the command **kubeadm token create --print-join-command** and copy the command output : | ||
Ligne 687: | Ligne 686: | ||
apiVersion: kubelet.config.k8s.io/ | apiVersion: kubelet.config.k8s.io/ | ||
authentication: | authentication: | ||
- | anonymous: | + | |
- | enabled: false | + | enabled: false |
- | webhook: | + | webhook: |
- | cacheTTL: 0s | + | cacheTTL: 0s |
- | enabled: true | + | enabled: true |
- | x509: | + | x509: |
- | clientCAFile: | + | clientCAFile: |
authorization: | authorization: | ||
- | mode: Webhook | + | |
- | webhook: | + | webhook: |
- | cacheAuthorizedTTL: | + | cacheAuthorizedTTL: |
- | cacheUnauthorizedTTL: | + | cacheUnauthorizedTTL: |
cgroupDriver: | cgroupDriver: | ||
clusterDNS: | clusterDNS: | ||
Ligne 712: | Ligne 711: | ||
kind: KubeletConfiguration | kind: KubeletConfiguration | ||
logging: | logging: | ||
- | flushFrequency: | + | |
- | options: | + | options: |
- | json: | + | json: |
- | infoBufferSize: | + | infoBufferSize: |
- | verbosity: 0 | + | verbosity: 0 |
memorySwap: {} | memorySwap: {} | ||
nodeStatusReportFrequency: | nodeStatusReportFrequency: | ||
Ligne 741: | Ligne 740: | ||
< | < | ||
root@kubenode2: | root@kubenode2: | ||
- | logout | + | déconnexion |
trainee@kubenode2: | trainee@kubenode2: | ||
- | logout | + | déconnexion |
Connection to kubenode2 closed. | Connection to kubenode2 closed. | ||
root@kubemaster: | root@kubemaster: | ||
- | NAME STATUS ROLES AGE VERSION | + | NAME STATUS |
- | kubemaster.ittraining.loc Ready control-plane 3h8m v1.24.2 | + | kubemaster.ittraining.loc |
- | kubenode1.ittraining.loc NotReady < | + | kubenode1.ittraining.loc |
- | kubenode2.ittraining.loc NotReady < | + | kubenode2.ittraining.loc |
</ | </ | ||
- | ====.7 - K8s and High Availability==== | + | ====1.7 - K8s and High Availability==== |
In order to implement K8s in a high-availability environment, | In order to implement K8s in a high-availability environment, | ||
Ligne 758: | Ligne 757: | ||
There are two methods for managing Etcd instances in the case of high availability: | There are two methods for managing Etcd instances in the case of high availability: | ||
- | **Stacked** Etcd | + | * **Stacked** Etcd |
- | **External** Etcd | + | |
===Stacked Etcd=== | ===Stacked Etcd=== | ||
- | In this case, each Controller has its own Etcd instance, which communicates with each other: | + | In this case, each Controller has its own Etcd instance, which communicates with each of the other instances: |
{{ : | {{ : | ||
Ligne 793: | Ligne 792: | ||
< | < | ||
trainee@gateway: | trainee@gateway: | ||
- | % Total % Received % Xferd Average Speed Time Time Time Current | + | |
- | Download | + | Dload |
- | 100 71.4M 100 71.4M 0 0 58.0M 0 0:00:01 0:00:01 --:--:-- 58.0M | + | 100 71.4M 100 71.4M 0 |
</ | </ | ||
Ligne 837: | Ligne 836: | ||
</ | </ | ||
- | Check that the last command | + | Check that the last command |
< | < | ||
Ligne 851: | Ligne 850: | ||
</ | </ | ||
- | Check that the last command | + | Check that the last command |
< | < | ||
Ligne 859: | Ligne 858: | ||
====2.4 - Installing Docker==== | ====2.4 - Installing Docker==== | ||
- | |||
- | Minikube needs Docker to run. | ||
- | |||
- | ===Introduction to Docker=== | ||
- | |||
- | Docker is a lightweight virtualization application that uses **images** and **containers**. | ||
- | |||
- | An **image** is an executable package containing everything needed to run a given piece of software, including : | ||
- | |||
- | * code | ||
- | * a runtime | ||
- | * libraries | ||
- | * environment variables | ||
- | * configuration files | ||
- | |||
- | A **container** is an instance of the image running in memory. It is isolated from the host environment by default, but can access host files and ports depending on configuration. | ||
- | |||
- | Containers run applications natively using the host machine kernel. As a result, the performance of a container is superior to that of a virtual machine, which must use a hypervisor to access host resources: | ||
- | |||
- | Docker is available in two versions **Docker-CE** (Docker Community Edition) and **Docker-EE** (Docker Enterprise Edition). To see the differences between the two versions, visit **[[https:// | ||
- | |||
- | ===Installing docker=== | ||
Docker is not included in the Debian repository. To install it, you need to add the docker repository. First, you need to install the packages that enable Debian to use an https repository: | Docker is not included in the Debian repository. To install it, you need to add the docker repository. First, you need to install the packages that enable Debian to use an https repository: | ||
Ligne 921: | Ligne 898: | ||
root@gateway: | root@gateway: | ||
Client: Docker Engine - Community | Client: Docker Engine - Community | ||
- | Version: 27.3.1 | + | Version: |
- | API version: 1.47 | + | API version: |
- | Go version: go1.22.7 | + | Go version: |
- | Git commit: ce12230 | + | Git commit: |
- | Built: Fri Sep 20 11:41:19 2024 | + | |
- | OS/Arch: linux/ | + | |
- | Context: default | + | |
Server: Docker Engine - Community | Server: Docker Engine - Community | ||
- | Engine: | + | Engine: |
- | Version: 27.3.1 | + | Version: |
- | API version: 1.47 (minimum version 1.24) | + | API version: |
- | Go version: go1.22.7 | + | Go version: |
- | Git commit: 41ca978 | + | Git commit: |
- | Built: Fri Sep 20 11:41:19 2024 | + | Built: |
- | OS/Arch: linux/ | + | OS/ |
- | Experimental: | + | Experimental: |
- | containerd: | + | |
- | Version: 1.7.24 | + | Version: |
- | GitCommit: 88bf19b2105c8b17560993bee28a01ddc2f97182 | + | GitCommit: |
- | runc: | + | |
- | Version: 1.2.2 | + | Version: |
- | GitCommit: v1.2.2-0-g7cb3632 | + | GitCommit: |
- | docker-init: | + | |
- | Version: 0.19.0 | + | Version: |
- | GitCommit: de40ad0 | + | GitCommit: |
</ | </ | ||
Ligne 959: | Ligne 936: | ||
< | < | ||
trainee@gateway: | trainee@gateway: | ||
- | 😄 minikube v1.34.0 on Debian 11.8 (kvm/ | + | 😄 minikube v1.34.0 on Debian 11.8 (kvm/ |
- | ✨ Using the virtualbox driver based on existing profile | + | ✨ Using the virtualbox driver based on existing profile |
- | 👍 Starting | + | 👍 Starting |
- | 🤷 virtualbox | + | 🤷 virtualbox |
- | 🔥 Creating virtualbox VM (CPUs=2, Memory=4000MB, | + | 🔥 Creating virtualbox VM (CPUs=2, Memory=4000MB, |
- | 🐳 Preparing Kubernetes v1.31.0 on Docker 27.2.0 ... | + | 🐳 Preparing Kubernetes v1.31.0 on Docker 27.2.0 ... |
- | ▪ Generating certificates and keys ... | + | ▪ Generating certificates and keys ... |
- | ▪ Booting up control plane ... | + | ▪ Booting up control plane ... |
- | ▪ Configuring RBAC rules ... | + | ▪ Configuring RBAC rules ... |
- | 🔗 Configuring bridge CNI (Container Networking Interface) ... | + | 🔗 Configuring bridge CNI (Container Networking Interface) ... |
- | ▪ Using image gcr.io/ | + | ▪ Using image gcr.io/ |
╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ | ╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ | ||
- | │ │ | + | │ |
- | │ You have selected | + | │ You have selected |
- | │ For better performance and support consider using a different driver: │ | + | │ For better performance and support consider using a different driver: |
- | │ - kvm2 │ | + | │ - kvm2 |
- | │ - qemu2 │ | + | │ - qemu2 │ |
- | │ │ | + | │ |
- | │ To turn off this warning run: │ | + | │ To turn off this warning run: │ |
- | │ │ | + | │ |
- | │ $ minikube config set WantVirtualBoxDriverWarning false │ | + | │ $ minikube config set WantVirtualBoxDriverWarning false │ |
- | │ │ | + | │ |
- | │ │ | + | │ |
- | │ To learn more about on minikube drivers checkout https:// | + | │ To learn more about on minikube drivers checkout https:// |
- | │ To see benchmarks checkout https:// | + | │ To see benchmarks checkout https:// |
- | │ │ | + | │ |
╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ | ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ | ||
- | 🔎 Verifying Kubernetes components... | + | 🔎 Verifying Kubernetes components... |
- | 🌟 Enabled addons: default-storageclass, | + | 🌟 Enabled addons: default-storageclass, |
- | 💡 kubectl not found. If you need it, try: ' | + | 💡 kubectl not found. If you need it, try: ' |
- | 🏄 Done! kubectl is now configured to use “minikube” cluster and “default” namespace by default | + | 🏄 Done! kubectl is now configured to use "minikube" |
</ | </ | ||
Ligne 996: | Ligne 973: | ||
< | < | ||
trainee@gateway: | trainee@gateway: | ||
- | > kubectl.sha256: | + | |
- | > kubectl: 53.77 MiB / 53.77 MiB [----------] 100.00% 227.90 MiB p/s 400ms | + | > kubectl: |
- | NAMESPACE NAME READY STATUS RESTARTS AGE | + | NAMESPACE |
- | kube-system coredns-6f6b679f8f-9ql4g 1/1 Running 0 3m48s | + | kube-system |
- | kube-system coredns-6f6b679f8f-n5b86 1/1 Running 0 3m48s | + | kube-system |
- | kube-system etcd-minikube 1/1 Running 0 4m | + | kube-system |
- | kube-system kube-apiserver-minikube 1/1 Running 0 3m52s | + | kube-system |
- | kube-system kube-controller-manager-minikube 1/1 Running 0 3m51s | + | kube-system |
- | kube-system kube-proxy-5rnt6 1/1 Running 0 3m49s | + | kube-system |
- | kube-system kube-scheduler-minikube 1/1 Running 0 3m58s | + | kube-system |
- | kube-system storage-provisioner 1/1 Running 0 3m40s | + | kube-system |
</ | </ | ||
Ligne 1035: | Ligne 1012: | ||
< | < | ||
- | trainee@gateway:~$ minikube start | + | rainee@gateway:~$ minikube start |
- | 😄 minikube v1.34.0 on Debian 11.8 (kvm/ | + | 😄 minikube v1.34.0 on Debian 11.8 (kvm/ |
- | ✨ Using the virtualbox driver based on existing profile | + | ✨ Using the virtualbox driver based on existing profile |
- | 👍 Starting | + | 👍 Starting |
- | 🔄 Restarting existing virtualbox VM for “minikube” ... | + | 🔄 Restarting existing virtualbox VM for "minikube" |
- | 🐳 Preparing Kubernetes v1.31.0 on Docker 27.2.0 ... | + | 🐳 Preparing Kubernetes v1.31.0 on Docker 27.2.0 ... |
- | 🔗 Configuring bridge CNI (Container Networking Interface) ... | + | 🔗 Configuring bridge CNI (Container Networking Interface) ... |
╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ | ╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ | ||
- | │ │ | + | │ |
- | │ You have selected | + | │ You have selected |
- | │ For better performance and support consider using a different driver: │ | + | │ For better performance and support consider using a different driver: |
- | │ - kvm2 │ | + | │ - kvm2 |
- | │ - qemu2 │ | + | │ - qemu2 │ |
- | │ │ | + | │ |
- | │ To turn off this warning run: │ | + | │ To turn off this warning run: │ |
- | │ │ | + | │ |
- | │ $ minikube config set WantVirtualBoxDriverWarning false │ | + | │ $ minikube config set WantVirtualBoxDriverWarning false │ |
- | │ │ | + | │ |
- | │ │ | + | │ |
- | │ To learn more about on minikube drivers checkout https:// | + | │ To learn more about on minikube drivers checkout https:// |
- | │ To see benchmarks checkout https:// | + | │ To see benchmarks checkout https:// |
- | │ │ | + | │ |
╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ | ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ | ||
- | ▪ Using image gcr.io/ | + | |
- | 🔎 Verifying Kubernetes components... | + | 🔎 Verifying Kubernetes components... |
- | 🌟 Enabled addons: default-storageclass, | + | 🌟 Enabled addons: default-storageclass, |
- | 💡 kubectl not found. If you need it, try: ' | + | 💡 kubectl not found. If you need it, try: ' |
- | 🏄 Done! kubectl is now configured to use “minikube” cluster and “default” namespace by default | + | 🏄 Done! kubectl is now configured to use "minikube" |
</ | </ | ||
Ligne 1102: | Ligne 1079: | ||
</ | </ | ||
- | ====2.6 - The minikube | + | ====2.6 - The minikube addons |
Minikube uses modules. These modules are called **addons**. To view installed addons and their status, use the **minikube addons list** command: | Minikube uses modules. These modules are called **addons**. To view installed addons and their status, use the **minikube addons list** command: | ||
Ligne 1109: | Ligne 1086: | ||
trainee@gateway: | trainee@gateway: | ||
|-----------------------------|----------|--------------|--------------------------------| | |-----------------------------|----------|--------------|--------------------------------| | ||
- | | ADDON NAME | PROFILE | STATUS | MAINTAINER | | + | | |
|-----------------------------|----------|--------------|--------------------------------| | |-----------------------------|----------|--------------|--------------------------------| | ||
- | | ambassador | minikube | disabled | 3rd party (Ambassador) | | + | | ambassador |
- | | auto-pause | minikube | disabled | minikube | | + | | auto-pause |
- | | cloud-spanner | minikube | disabled | Google | | + | | cloud-spanner |
- | | csi-hostpath-driver | minikube | disabled | Kubernetes | | + | | csi-hostpath-driver |
- | | dashboard | minikube | disabled | Kubernetes | | + | | dashboard |
- | | default-storageclass | minikube | enabled ✅ | Kubernetes | | + | | default-storageclass |
- | | minikube | disabled | 3rd party (Elastic) | | + | | efk | minikube | disabled |
- | | freshpod | minikube | disabled | Google | | + | | freshpod |
- | | gcp-auth | minikube | disabled | Google | | + | | gcp-auth |
- | | gvisor | minikube | disabled | minikube | | + | | gvisor |
- | | headlamp | minikube | disabled | 3rd party (kinvolk.io) | | + | | headlamp |
- | | helm-tiller | minikube | disabled | 3rd party (Helm) | | + | | helm-tiller |
- | | inaccel | minikube | disabled | 3rd party (InAccel | | + | | inaccel |
- | | | | [info@inaccel.com]) | | + | | |
- | | ingress | minikube | disabled | Kubernetes | | + | | ingress |
- | | ingress-dns | minikube | disabled | minikube | | + | | ingress-dns |
- | | inspektor-gadget | minikube | disabled | 3rd party | | + | | inspektor-gadget |
- | | (inspektor-gadget.io) | | + | | |
- | | istio | minikube | disabled | 3rd party (Istio) | | + | | istio |
- | | istio-provisioner | minikube | disabled | 3rd party (Istio) | | + | | istio-provisioner |
- | | minikube | disabled | 3rd party (Kong HQ) | | + | | kong |
- | | kubeflow | minikube | disabled | 3rd party | | + | | kubeflow |
- | | kubevirt | minikube | disabled | 3rd party (KubeVirt) | | + | | kubevirt |
- | | logviewer | minikube | disabled | 3rd party (unknown) | | + | | logviewer |
- | | metallb | minikube | disabled | 3rd party (MetalLB) | | + | | metallb |
- | | metrics-server | minikube | disabled | Kubernetes | | + | | metrics-server |
- | | nvidia-device-plugin | minikube | disabled | 3rd party (NVIDIA) | | + | | nvidia-device-plugin |
- | | nvidia-driver-installer | minikube | disabled | 3rd party (NVIDIA) | | + | | nvidia-driver-installer |
- | | nvidia-gpu-device-plugin | minikube | disabled | 3rd party (NVIDIA) | | + | | nvidia-gpu-device-plugin |
- | | olm | minikube | disabled | 3rd party (Operator Framework) | | + | | olm |
- | | pod-security-policy | minikube | disabled | 3rd party (unknown) | | + | | pod-security-policy |
- | | portainer | minikube | disabled | 3rd party (Portainer.io) | | + | | portainer |
- | | registry | minikube | disabled | minikube | | + | | registry |
- | | registry-aliases | minikube | disabled | 3rd party (unknown) | | + | | registry-aliases |
- | | registry-creds | minikube | disabled | 3rd party (UPMC Enterprises) | | + | | registry-creds |
- | | storage-provisioner | minikube | enabled ✅ | minikube | | + | | storage-provisioner |
- | | storage-provisioner-gluster | minikube | disabled | 3rd party (Gluster) | | + | | storage-provisioner-gluster | minikube | disabled |
- | | storage-provisioner-rancher | minikube | disabled | 3rd party (Rancher) | | + | | storage-provisioner-rancher | minikube | disabled |
- | | volcano | minikube | disabled | third-party (volcano) | | + | | volcano |
- | | volumesnapshots | minikube | disabled | Kubernetes | | + | | volumesnapshots |
- | | yakd | minikube | disabled | 3rd party (marcnuri.com) | | + | | yakd | minikube | disabled |
|-----------------------------|----------|--------------|--------------------------------| | |-----------------------------|----------|--------------|--------------------------------| | ||
</ | </ | ||
Ligne 1159: | Ligne 1136: | ||
< | < | ||
trainee@gateway: | trainee@gateway: | ||
- | 💡 metrics-server is an addon maintained by Kubernetes. For any concerns contact minikube on GitHub. | + | 💡 metrics-server is an addon maintained by Kubernetes. For any concerns contact minikube on GitHub. |
You can view the list of minikube maintainers at: https:// | You can view the list of minikube maintainers at: https:// | ||
- | ▪ Using image registry.k8s.io/ | + | |
- | 🌟 The ' | + | 🌟 The ' |
</ | </ | ||
Ligne 1170: | Ligne 1147: | ||
trainee@gateway: | trainee@gateway: | ||
|-----------------------------|----------|--------------|--------------------------------| | |-----------------------------|----------|--------------|--------------------------------| | ||
- | | ADDON NAME | PROFILE | STATUS | MAINTAINER | | + | | |
|-----------------------------|----------|--------------|--------------------------------| | |-----------------------------|----------|--------------|--------------------------------| | ||
- | | ambassador | minikube | disabled | 3rd party (Ambassador) | | + | | ambassador |
- | | auto-pause | minikube | disabled | minikube | | + | | auto-pause |
- | | cloud-spanner | minikube | disabled | Google | | + | | cloud-spanner |
- | | csi-hostpath-driver | minikube | disabled | Kubernetes | | + | | csi-hostpath-driver |
- | | dashboard | minikube | disabled | Kubernetes | | + | | dashboard |
- | | default-storageclass | minikube | enabled ✅ | Kubernetes | | + | | default-storageclass |
- | | minikube | disabled | 3rd party (Elastic) | | + | | efk | minikube | disabled |
- | | freshpod | minikube | disabled | Google | | + | | freshpod |
- | | gcp-auth | minikube | disabled | Google | | + | | gcp-auth |
- | | gvisor | minikube | disabled | minikube | | + | | gvisor |
- | | headlamp | minikube | disabled | 3rd party (kinvolk.io) | | + | | headlamp |
- | | helm-tiller | minikube | disabled | 3rd party (Helm) | | + | | helm-tiller |
- | | inaccel | minikube | disabled | 3rd party (InAccel | | + | | inaccel |
- | | | | [info@inaccel.com]) | | + | | |
- | | ingress | minikube | disabled | Kubernetes | | + | | ingress |
- | | ingress-dns | minikube | disabled | minikube | | + | | ingress-dns |
- | | inspektor-gadget | minikube | disabled | 3rd party | | + | | inspektor-gadget |
- | | (inspektor-gadget.io) | | + | | |
- | | istio | minikube | disabled | 3rd party (Istio) | | + | | istio |
- | | istio-provisioner | minikube | disabled | 3rd party (Istio) | | + | | istio-provisioner |
- | | minikube | disabled | 3rd party (Kong HQ) | | + | | kong |
- | | kubeflow | minikube | disabled | 3rd party | | + | | kubeflow |
- | | kubevirt | minikube | disabled | 3rd party (KubeVirt) | | + | | kubevirt |
- | | logviewer | minikube | disabled | 3rd party (unknown) | | + | | logviewer |
- | | metallb | minikube | disabled | 3rd party (MetalLB) | | + | | metallb |
- | | metrics-server | minikube | enabled ✅ | Kubernetes | | + | | metrics-server |
- | | nvidia-device-plugin | minikube | disabled | 3rd party (NVIDIA) | | + | | nvidia-device-plugin |
- | | nvidia-driver-installer | minikube | disabled | 3rd party (NVIDIA) | | + | | nvidia-driver-installer |
- | | nvidia-gpu-device-plugin | minikube | disabled | 3rd party (NVIDIA) | | + | | nvidia-gpu-device-plugin |
- | | olm | minikube | disabled | 3rd party (Operator Framework) | | + | | olm |
- | | pod-security-policy | minikube | disabled | 3rd party (unknown) | | + | | pod-security-policy |
- | | portainer | minikube | disabled | 3rd party (Portainer.io) | | + | | portainer |
- | | registry | minikube | disabled | minikube | | + | | registry |
- | | registry-aliases | minikube | disabled | 3rd party (unknown) | | + | | registry-aliases |
- | | registry-creds | minikube | disabled | 3rd party (UPMC Enterprises) | | + | | registry-creds |
- | | storage-provisioner | minikube | enabled ✅ | minikube | | + | | storage-provisioner |
- | | storage-provisioner-gluster | minikube | disabled | 3rd party (Gluster) | | + | | storage-provisioner-gluster | minikube | disabled |
- | | storage-provisioner-rancher | minikube | disabled | 3rd party (Rancher) | | + | | storage-provisioner-rancher | minikube | disabled |
- | | volcano | minikube | disabled | third-party (volcano) | | + | | volcano |
- | | volumesnapshots | minikube | disabled | Kubernetes | | + | | volumesnapshots |
- | | yakd | minikube | disabled | 3rd party (marcnuri.com) | | + | | yakd | minikube | disabled |
|-----------------------------|----------|--------------|--------------------------------| | |-----------------------------|----------|--------------|--------------------------------| | ||
</ | </ | ||
- | ====2.7 - The minikube dashboard | + | ====2.7 - The minikube dashboard |
Activate the **dashboard** module: | Activate the **dashboard** module: | ||
Ligne 1222: | Ligne 1199: | ||
< | < | ||
trainee@gateway: | trainee@gateway: | ||
- | 💡 dashboard is an addon maintained by Kubernetes. For any concerns contact minikube on GitHub. | + | 💡 dashboard is an addon maintained by Kubernetes. For any concerns contact minikube on GitHub. |
You can view the list of minikube maintainers at: https:// | You can view the list of minikube maintainers at: https:// | ||
- | ▪ Using image docker.io/ | + | |
- | ▪ Using image docker.io/ | + | ▪ Using image docker.io/ |
- | 💡 Some dashboard features require the metrics-server addon. To enable all features please run: | + | 💡 Some dashboard features require the metrics-server addon. To enable all features please run: |
- | minikube addons enable metrics-server | + | |
- | 🌟 The ' | + | 🌟 The ' |
</ | </ | ||
Connect to your Gateway GUI. | Connect to your Gateway GUI. | ||
- | Minikube includes the **Kubernetes Dashboard** application. | + | Run the **minikube dashboard** command in a graphical terminal. The Firefox browser will be launched, giving you access to Kubernetes Dashboard. |
Return to the SSH connection window. | Return to the SSH connection window. | ||
Ligne 1260: | Ligne 1237: | ||
< | < | ||
trainee@kubemaster: | trainee@kubemaster: | ||
- | Password | + | Mot de passe : |
root@kubemaster: | root@kubemaster: | ||
- | NAME STATUS ROLES AGE VERSION | + | NAME STATUS |
- | kubemaster.ittraining.loc Ready control-plane 4h1m v1.24.2 | + | kubemaster.ittraining.loc |
- | kubenode1.ittraining.loc Ready < | + | kubenode1.ittraining.loc |
- | kubenode2.ittraining.loc Ready < | + | kubenode2.ittraining.loc |
</ | </ | ||
Ligne 1272: | Ligne 1249: | ||
< | < | ||
root@kubemaster: | root@kubemaster: | ||
- | NAMESPACE NAME READY STATUS RESTARTS AGE | + | NAMESPACE |
- | kube-system calico-kube-controllers-bc5cbc89f-rpbsc 1/1 Running 0 65m | + | kube-system |
- | kube-system calico-node-9qwnr 1/1 Running 0 65m | + | kube-system |
- | kube-system calico-node-rrkkk 1/1 Running 0 51m | + | kube-system |
- | kube-system calico-node-szmcq 1/1 Running 0 53m | + | kube-system |
- | kube-system coredns-6d4b75cb6d-btmcw 1/1 Running 0 67m | + | kube-system |
- | kube-system coredns-6d4b75cb6d-m6mpc 1/1 Running 0 67m | + | kube-system |
- | kube-system etcd-kubemaster.ittraining.loc 1/1 Running 3 (63m ago) 67m | + | kube-system |
- | kube-system kube-apiserver-kubemaster.ittraining.loc 1/1 Running 5 (62m ago) 67m | + | kube-system |
- | kube-system kube-controller-manager-kubemaster.ittraining.loc 1/1 Running 12 (57m ago) 67m | + | kube-system |
- | kube-system kube-proxy-7z9hs 1/1 Running 0 53m | + | kube-system |
- | kube-system kube-proxy-k2q55 1/1 Running 0 67m | + | kube-system |
- | kube-system kube-proxy-pcdj9 1/1 Running 0 51m | + | kube-system |
- | kube-system kube-scheduler-kubemaster.ittraining.loc 1/1 Running 13 (57m ago) 67m | + | kube-system |
</ | </ | ||
---- | ---- | ||
- | Copyright © 2024 Hugh Norris. | + | Copyright © 2025 Hugh Norris. |