kubernetes

main
gwen 3 months ago
parent 139b039ac2
commit c6763a6ff8

@ -0,0 +1,20 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: dashboard-ingress
namespace: kubernetes-dashboard
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: pedrolalune.fr
http:
paths:
- path: /
pathType: Exact
backend:
service:
name: kubernetes-dashboard
#name: mongo-express-service
port:
number: 80

@ -0,0 +1,54 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongo-express
labels:
app: mongo-express
spec:
replicas: 1
selector:
matchLabels:
app: mongo-express
template:
metadata:
labels:
app: mongo-express
spec:
containers:
- name: mongo-express
image: mongo-express
ports:
- containerPort: 8081
env:
- name: ME_CONFIG_MONGODB_ADMINUSERNAME
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-username
- name: ME_CONFIG_MONGODB_ADMINPASSWORD
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-password
- name: ME_CONFIG_MONGODB_SERVER
valueFrom:
configMapKeyRef:
name: mongodb-configmap
key: db_host
---
apiVersion: v1
kind: Service
metadata:
name: mongo-express-service
spec:
selector:
app: mongo-express
type: LoadBalancer
#type: ClusterIP
ports:
- protocol: TCP
port: 8081
targetPort: 8081
nodePort: 30000
#nodePort: 30000

@ -0,0 +1,7 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: mongodb-configmap
data:
db_host: mongodb-service

@ -0,0 +1,45 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongodb-deployment
labels:
app: mongodb
spec:
selector:
matchLabels:
app: mongodb
template:
metadata:
labels:
app: mongodb
spec:
containers:
- name: mongodb
image: mongo
ports:
- containerPort: 27017
env:
- name: MONGO_INITDB_ROOT_USERNAME
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-username
- name: MONGO_INITDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-password
---
apiVersion: v1
kind: Service
metadata:
name: mongodb-service
spec:
selector:
app: mongodb
ports:
- protocol: TCP
port: 27017
targetPort: 27017

@ -0,0 +1,9 @@
apiVersion: v1
kind: Secret
metadata:
name: mongodb-secret
type: Opaque
data:
mongo-root-username: dXNlcm5hbWU=
mongo-root-password: cGFzc3dvcmQ=

@ -0,0 +1,62 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "1"
creationTimestamp: "2023-01-02T14:44:40Z"
generation: 1
labels:
app: mongo-depl
name: mongo-depl
namespace: default
resourceVersion: "13911"
uid: 3c5120a0-9cf8-4112-89f4-39da30df18d3
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: mongo-depl
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
app: mongo-depl
spec:
containers:
- image: mongo
imagePullPolicy: Always
name: mongo
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
status:
availableReplicas: 1
conditions:
- lastTransitionTime: "2023-01-02T14:44:42Z"
lastUpdateTime: "2023-01-02T14:44:42Z"
message: Deployment has minimum availability.
reason: MinimumReplicasAvailable
status: "True"
type: Available
- lastTransitionTime: "2023-01-02T14:44:40Z"
lastUpdateTime: "2023-01-02T14:44:42Z"
message: ReplicaSet "mongo-depl-8fbdb868c" has successfully progressed.
reason: NewReplicaSetAvailable
status: "True"
type: Progressing
observedGeneration: 1
readyReplicas: 1
replicas: 1
updatedReplicas: 1

@ -0,0 +1,19 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2 # tells deployment to run 2 pods matching the template
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80

@ -0,0 +1,19 @@
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
labels:
app: nginx
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
spec:
externalTrafficPolicy: Local
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer

@ -0,0 +1,16 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: name-virtual-host-ingress
spec:
rules:
- host: mistergwen.site
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: service1
port:
number: 80

@ -0,0 +1,11 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: exemple-configmap
namespace: monprojet
data:
config.json: |
{
"param1": "valeur1",
"param2": "valeur2"
}

@ -0,0 +1,12 @@
apiVersion: v1
kind: Pod
metadata:
name: pod-configmap
namespace: monprojet
spec:
containers:
- name: mon-conteneur
image: nginx
envFrom:
- configMapRef:
name: exemple-configmap

@ -0,0 +1,38 @@
snap install microk8s --classic
microk8s kubectl get nodes
microk8s kubectl create deployment nginx-deployment --image=nginx
microk8s kubectl get pod
kubectl get replicaset
microk8s kubectl edit deployment nginx-deployment
kubectl describe deployment nginx-deployment
alias k="microk8s kubectl"
k -n default # -n : namespaces
kubectl run pod --help
#autodoc:
k explain pod
# documenter un sous-objet:
k explain pods.spec.affinity
# toutes les docs des sous-objets
k explain pods.spec.affinity --recursive
# toutes les ressources pouvant être déclarées
k api-resources
# les versions doivent être identiques
k version
Client Version: v1.28.7
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.28.7
k get
----
microk8s enable ingress
daemonset.apps/nginx-ingress-microk8s-controller created
Ingress is enabled

@ -0,0 +1,41 @@
Les manifestes
------------------
k apply -f monprojet-namespace.yaml
k get namespaces
k get pods -n default
NAME READY STATUS RESTARTS AGE
nginx-deployment-6d6565499c-rgfqj 1/1 Running 3 (9d ago) 18d
- apply (qu'on peut faire plusieurs fois)
- get
- describe
- edit
scaling
-------------
k scale deployment nginx-deployment --replicas 2
deployment.apps/nginx-deployment scaled
root@vps-d5f0bb47:~# k get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deployment 1/2 2 1 18d
root@vps-d5f0bb47:~# k get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deployment 2/2 2 2 18d
services
-------------
k get all
k logs <name>
delete
----------
kubectl delete all --all

@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: monprojet

@ -0,0 +1,8 @@
apiVersion: v1
kind: Secret
metadata:
name: exemple-secret
namespace: monprojet
type: Opaque
data:
password: cGFzc3dvcmQ=

@ -0,0 +1,15 @@
apiVersion: v1
kind: Pod
metadata:
name: pod-secret
namespace: monprojet
spec:
containers:
- name: mon-conteneur
image: nginx
env:
- name: PASSWORD
valueFrom:
secretKeyRef:
name: exemple-secret
key: password

@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: nginx-service
namespace: monprojet
spec:
type: NodePort
selector:
app: nginx
ports:
- protocol: TCP
port: 80
nodePort: 30007

@ -0,0 +1,15 @@
apiVersion: v1
kind: Pod
metadata:
name: alpine
namespace: default
spec:
containers:
- image: alpine:3.2
command:
- /bin/sh
- "-c"
- "sleep 60m"
imagePullPolicy: IfNotPresent
name: alpine
restartPolicy: Always

@ -0,0 +1,13 @@
apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
template:
spec:
containers:
- name: pi
image: perl:5.34.0
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
backoffLimit: 4

@ -0,0 +1,42 @@
---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
name: nginx
spec:
strategy:
type: Recreate
selector:
matchLabels:
app: nginx
replicas: 3 # tells deployment to run 1 pods matching the template
template: # create pods using pod definition in this template
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
labels:
app: nginx
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
spec:
externalTrafficPolicy: Local
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer

@ -0,0 +1,19 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 1 # tells deployment to run 2 pods matching the template
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
Loading…
Cancel
Save