Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
1f55d38
Update README.md
OlivierKouokam Sep 10, 2024
846d9af
Update README.md
OlivierKouokam Sep 19, 2024
c43dfe1
Merge branch 'eazytrainingfr:master' into master
OlivierKouokam Nov 28, 2025
a7382c5
Create note.txt
OlivierKouokam Dec 1, 2025
1fe43fd
Create module08_aws+eks.txt
OlivierKouokam Dec 1, 2025
99027bb
Create module08_gitops+jenkins-x.txt
OlivierKouokam Dec 1, 2025
2f2aca0
Rename module08_gitops+jenkins-x.txt to module09_gitops+jenkins-x.txt
OlivierKouokam Dec 1, 2025
ddd0bf6
Create module10_tekton-pipelines.txt
OlivierKouokam Dec 1, 2025
101c86b
Create module11_polaris-gouvernance-conformité.txt
OlivierKouokam Dec 1, 2025
31b7c7f
Create module12_auto-DevOps-GitLab-CI+EKS.txt
OlivierKouokam Dec 1, 2025
3ba855f
Create module13_Istio-ServiceMesh.txt
OlivierKouokam Dec 1, 2025
0901b50
Create module14_Backup-k8s-velero.txt
OlivierKouokam Dec 1, 2025
3c5d3f1
Create module15_Kustomize.txt
OlivierKouokam Dec 1, 2025
f7a272a
Create module10_Serverless-avec-K8s+OpenFAAS.txt
OlivierKouokam Dec 1, 2025
1e4ebe5
Rename module10_Serverless-avec-K8s+OpenFAAS.txt to module16_Serverle…
OlivierKouokam Dec 1, 2025
848d3e4
Create module17_Bonus.txt
OlivierKouokam Dec 1, 2025
4ec280c
Create module19_PlayWithKubernetes.txt
OlivierKouokam Dec 1, 2025
d3b1762
Rename module19_PlayWithKubernetes.txt to module19_play-with-kubernet…
OlivierKouokam Dec 1, 2025
33dcf0a
Create README.md
OlivierKouokam Dec 1, 2025
c290512
Update README.md
OlivierKouokam Dec 1, 2025
0491ec6
Update module08_aws+eks.txt
OlivierKouokam Dec 1, 2025
97d5086
Update note.txt
OlivierKouokam Dec 2, 2025
69a4760
Update module09_gitops+jenkins-x.txt
OlivierKouokam Dec 2, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# kubernetes-training

## Version des outils utilisés:
## minikube: v1.34.0
## kubernetes: v1.31.1

### NB : Au début l'énoncé de chaque TP on vous indiquera les environnements dans lesquels vous devriez travailler
### NB : Au début l'énoncé de chaque TP on vous indiquera les environnements dans lesquels vous devriez travailler
3 changes: 3 additions & 0 deletions partie-2/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# kubernetes-training - partie 2

## [Kubernetes: les bases pour DevOps Partie 2](https://eazytraining.fr/cours/kubernetes-les-bases-pour-devops-partie-2/)
53 changes: 53 additions & 0 deletions partie-2/module08_aws+eks.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
https://eazytraining.fr/cours/kubernetes-les-bases-pour-devops-partie-2/

commandes nécessaires

>> Module 08 : AWS + EKS

https://eazytraining.fr/cours/kubernetes-les-bases-pour-devops-partie-2/lessons/tp-deploiement-du-cluster-k8s-avec-eks-copy-3/
export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
export AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
export AWS_DEFAULT_REGION=us-east-1

sudo apt update

sudo apt install unzip

curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/local/bin/

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/

eksctl create cluster \
--name eazy \
--region us-east-1 \
--version 1.34 \
--managed \
--nodegroup-name ng-workers \
--node-type t3.medium \
--nodes 2 \
--nodes-min 1 \
--nodes-max 5 \
--node-volume-size 50 \
--ssh-access \
--ssh-public-key devops-terraform \
--with-oidc \
--asg-access \
--tags "env=dev,team=eazytraining"

kubectl get node

eksctl utils write-kubeconfig --cluster eazy --kubeconfig=$HOME/cluster-eazy-config

export KUBECONFIG=$HOME/cluster-eazy-config

sudo echo 'source <(kubectl completion bash)' >> ${HOME}/.bashrc && source ${HOME}/.bashrc

eksctl delete cluster --name eazy --region us-east-1
98 changes: 98 additions & 0 deletions partie-2/module09_gitops+jenkins-x.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
>> Module: GitOps avec Jenkins-x

+ Ajouter la police "DescribeInternetGateways" au service role: eksctl-eazy-cluster-ServiceRole-*** (AWS service: eks-fargate-pods, etc...)
eksctl-eazy-cluster-PolicyELBPermissions
{
"Version": "2012-10-17"
"Statement": [
{
"Action": [
"ec2:DescribeAccountAttributes",
"ec2:DescribeInternetGateways"
],
"Resource": "*",
"Effect": "Allow"
}
]
}

+ se procurer un nom de domaine sur godaddy ou no-ip pour rediriger le traffic vers votre cluster k8s

+ Se rendre sur la VM d'administration

git --version

curl -L https://github.com/jenkins-x/jx/releases/download/$(curl --silent "https://github.com/jenkins-x/jx/releases/latest" | sed 's#.*tag/\(.*\)\".*#\1#')/jx-linux-amd64.tar.gz | tar xzv "jx"
ou bien
curl -L https://github.com/jenkins-x/jx/releases/download/v2.1.150/jx-linux-amd64.tar.gz | tar xzv

sudo mv jx /usr/local/bin

sudo su -

export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
export AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
export AWS_DEFAULT_REGION=us-east-1

eksctl utils write-kubeconfig --name=eazy --kubeconfig=$HOME/eazy
export KUBECONFIG=$HOME/eazy
sudo echo 'source <(kubectl completion bash)' >> ${HOME}/.bashrc && source ${HOME}/.bashrc

jx boot KUBERNETES_SERVICE_HOST KUBERNETES_SERVICE_PORT

vi ~/jenkins-x-boot-config/jx-requirements.yml

modifier les valeurs du provider et du domain avec:
provider: eks
ingress:
domain: jx.eazytraining.fr
ignoreLoadBalancer: true

créer un token github pour jenkins-x

Renseigner les infos de 1ère configuration:
- Admin Username
- Admin Password
- Git username
- Git email address
- Git token
- default Docker Registry: No

Resize cluster VMs for jenkins-x: from micro to large
sudo su -
export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
export AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
export AWS_DEFAULT_REGION=us-east-1
export KUBECONFIG=$HOME/eazy
jx boot

kubectl get ingress
kubectl get svc
kubectl get svc -n kube-system

REGISTER A DOMAIN NAME IN GODADDY OR NO-IP:
Type: CNAME - Hôte: *.jx.eazytraining.fr - Pointe sur: addresse (dns ou ip) de l'elb

ping hook-jx.jx.eazytraining.fr

jx create quickstart
> node-http
> github.com username
> API Token
> repository name
> initialize ?
> different namespace for preview ?

jx get activity -f node-eazy-jenkins-x -w
jx get application

eksctl delete cluster --name=eazy
delete bastion/admin vm

<<
// curl -L https://github.com/jenkins-x/jx/releases/download/v2.1.140/jx-linux-amd64.tar.gz | tar xzv
// sudo mv jx /usr/local/bin

// https://jenkins-x.io/
// https://github.com/jenkins-x/jx
>>
1 change: 1 addition & 0 deletions partie-2/module10_tekton-pipelines.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions partie-2/module11_polaris-gouvernance-conformité.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions partie-2/module12_auto-DevOps-GitLab-CI+EKS.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions partie-2/module13_Istio-ServiceMesh.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions partie-2/module14_Backup-k8s-velero.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions partie-2/module15_Kustomize.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions partie-2/module16_Serverless-avec-K8s+OpenFAAS.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions partie-2/module17_Bonus.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions partie-2/module19_play-with-kubernetes.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

177 changes: 177 additions & 0 deletions partie-2/note.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
UDEMY UPDATE COURSE

K8S

https://eazytraining.fr/cours/kubernetes-les-bases-pour-devops-partie-2/

commandes nécessaires

>> Module 08 : AWS + EKS

https://eazytraining.fr/cours/kubernetes-les-bases-pour-devops-partie-2/lessons/tp-deploiement-du-cluster-k8s-avec-eks-copy-3/
export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
export AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
export AWS_DEFAULT_REGION=us-east-1

sudo apt update

sudo apt install unzip

curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/local/bin/

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/

eksctl create cluster \
--name eazy \
--region us-east-1 \
--version 1.34 \
--managed \
--nodegroup-name ng-workers \
--node-type t3.medium \
--nodes 2 \
--nodes-min 1 \
--nodes-max 5 \
--node-volume-size 50 \
--ssh-access \
--ssh-public-key devops-terraform \
--with-oidc \
--asg-access \
--tags "env=dev,team=eazytraining"

kubectl get node

eksctl utils write-kubeconfig --cluster eazy --kubeconfig=$HOME/cluster-eazy-config

export KUBECONFIG=$HOME/cluster-eazy-config

sudo echo 'source <(kubectl completion bash)' >> ${HOME}/.bashrc && source ${HOME}/.bashrc

eksctl delete cluster --name eazy --region us-east-1


>> Module 09 : GitOps avec Jenkins-x

+ Ajouter la police "DescribeInternetGateways" au service role: eksctl-eazy-cluster-ServiceRole-*** (AWS service: eks-fargate-pods, etc...)
eksctl-eazy-cluster-PolicyELBPermissions
{
"Version": "2012-10-17"
"Statement": [
{
"Action": [
"ec2:DescribeAccountAttributes",
"ec2:DescribeInternetGateways"
],
"Resource": "*",
"Effect": "Allow"
}
]
}

+ se procurer un nom de domaine sur godaddy ou no-ip pour rediriger le traffic vers votre cluster k8s

+ Se rendre sur la VM d'administration

git --version

curl -L https://github.com/jenkins-x/jx/releases/download/$(curl --silent "https://github.com/jenkins-x/jx/releases/latest" | sed 's#.*tag/\(.*\)\".*#\1#')/jx-linux-amd64.tar.gz | tar xzv "jx"
ou bien
curl -L https://github.com/jenkins-x/jx/releases/download/v2.1.150/jx-linux-amd64.tar.gz | tar xzv

sudo mv jx /usr/local/bin

sudo su -

export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
export AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
export AWS_DEFAULT_REGION=us-east-1

eksctl utils write-kubeconfig --name=eazy --kubeconfig=$HOME/eazy
export KUBECONFIG=$HOME/eazy
sudo echo 'source <(kubectl completion bash)' >> ${HOME}/.bashrc && source ${HOME}/.bashrc

jx boot KUBERNETES_SERVICE_HOST KUBERNETES_SERVICE_PORT

vi ~/jenkins-x-boot-config/jx-requirements.yml

modifier les valeurs du provider et du domain avec:
provider: eks
ingress:
domain: jx.eazytraining.fr
ignoreLoadBalancer: true

créer un token github pour jenkins-x

Renseigner les infos de 1ère configuration:
- Admin Username
- Admin Password
- Git username
- Git email address
- Git token
- default Docker Registry: No

Resize cluster VMs for jenkins-x: from micro to large
sudo su -
export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
export AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
export AWS_DEFAULT_REGION=us-east-1
export KUBECONFIG=$HOME/eazy
jx boot

kubectl get ingress
kubectl get svc
kubectl get svc -n kube-system

REGISTER A DOMAIN NAME IN GODADDY OR NO-IP:
Type: CNAME - Hôte: *.jx.eazytraining.fr - Pointe sur: addresse (dns ou ip) de l'elb

ping hook-jx.jx.eazytraining.fr

jx create quickstart
> node-http
> github.com username
> API Token
> repository name
> initialize ?
> different namespace for preview ?

jx get activity -f node-eazy-jenkins-x -w
jx get application

eksctl delete cluster --name=eazy
delete bastion/admin vm

<<
// curl -L https://github.com/jenkins-x/jx/releases/download/v2.1.140/jx-linux-amd64.tar.gz | tar xzv
// sudo mv jx /usr/local/bin

// https://jenkins-x.io/
// https://github.com/jenkins-x/jx
>>

Module 10 : Tekton - Pipelines

Module 11 : Polaris - Gouvernance + Conformité d'un cluster K8S

Module 12 : Auto-DevOps : Gitlab-CI + EKS

Module 13 : Istio - Service Mesh

Module 14 : Backup k8s avec velero

Module 15 : Kustomize

Module 16 : Serverless avec Kubernetes + OpenFAAS

Module 17 : Bonus

Module 18 : Mini-projet

Module 19 : play with kubernetes