Change some practice

This commit is contained in:
Marsel Ibraev
2021-09-27 16:59:35 +03:00
parent f44beb51a9
commit f41e7a6611
187 changed files with 33 additions and 72 deletions
@@ -0,0 +1,47 @@
# Secret
1) Применим манифесты для создания configmap и запуск deployment
Для этого выполним команду:
```bash
kubectl apply -f ~/slurm/practice/3.saving-configurations/1.env/deployment-with-env.yaml
```
2) Проверяем результат
Для этого выполним команду, подставив вместо < RANDOM > нужное значение(`автоподстановка по TAB`):
```bash
kubectl describe pod my-deployment-< RANDOM >
```
Результат должен содержать:
```bash
Environment:
TEST: foo
```
3) Создаем configmap
```bash
kubectl apply -f ~/slurm/practice/3.saving-configurations/1.env/configmap.yaml
kubectl apply -f ~/slurm/practice/3.saving-configurations/1.env/deployment-with-env-cm.yaml
```
4) Проверяем результат
Для этого выполним команду, подставив вместо < RANDOM > нужное значение(`автоподстановка по TAB`):
```bash
kubectl exec -it my-deployment-< RANDOM > -- env
```
Результат должен содержать:
```bash
TEST=foo
dbhost=postgresql
DEBUG=false
```
@@ -0,0 +1,9 @@
---
apiVersion: v1
kind: ConfigMap
metadata:
name: my-configmap-env
data:
dbhost: postgresql
DEBUG: "false"
...
@@ -0,0 +1,39 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 1
selector:
matchLabels:
app: my-app
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: my-app
spec:
containers:
- image: nginx:1.12
name: nginx
env:
- name: TEST
value: foo
envFrom:
- configMapRef:
name: my-configmap-env
ports:
- containerPort: 80
resources:
requests:
cpu: 50m
memory: 100Mi
limits:
cpu: 100m
memory: 100Mi
...
@@ -0,0 +1,36 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 1
selector:
matchLabels:
app: my-app
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: my-app
spec:
containers:
- image: nginx:1.12
name: nginx
env:
- name: TEST
value: foo
ports:
- containerPort: 80
resources:
requests:
cpu: 50m
memory: 100Mi
limits:
cpu: 100m
memory: 100Mi
...
@@ -0,0 +1,62 @@
# Secret
1) Создаем секрет
Для этого выполним команду:
```bash
kubectl create secret generic test --from-literal=test1=asdf --from-literal=dbpassword=1q2w3e
kubectl get secret
kubectl get secret test -o yaml
```
2) Применим наш деплоймент
Для этого выполним команду:
```bash
kubectl apply -f ~/slurm/practice/3.saving-configurations/2.secret/deployment-with-secret.yaml
```
3) Проверяем результат
Для этого выполним команду, подставив вместо < RANDOM > нужное значение(`автоподстановка по TAB`):
```bash
kubectl describe pod my-deployment-< RANDOM >
```
Результат должен содержать:
```bash
Environment:
TEST: foo
TEST_1: <set to the key 'test1' in secret 'test'> Optional: false
```
4) Применяем манифест с секретом
```bash
kubectl apply -f ~/slurm/practice/3.saving-configurations/2.secret/secret.yaml
```
5) Проверяем что в секрете
```bash
kubectl get secret test -o yaml
```
6) Исправляем манифест секрета и применяем
```bash
# изменяем ключ test на test1
vim secret.yaml
kubectl apply -f secret.yaml
```
7) Проверяем что в секрете
```bash
kubectl get secret test -o yaml
```
@@ -0,0 +1,44 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 1
selector:
matchLabels:
app: my-app
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: my-app
spec:
containers:
- image: nginx:1.12
name: nginx
envFrom:
- configMapRef:
name: my-configmap-env
env:
- name: TEST
value: foo
- name: TEST_1
valueFrom:
secretKeyRef:
name: test
key: test1
ports:
- containerPort: 80
resources:
requests:
cpu: 50m
memory: 100Mi
limits:
cpu: 100m
memory: 100Mi
...
@@ -0,0 +1,8 @@
---
apiVersion: v1
kind: Secret
metadata:
name: test
stringData:
test: updated
...
@@ -0,0 +1,44 @@
# Configmap
1) Создаем configmap
Для этого выполним команду:
```bash
kubectl apply -f ~/slurm/practice/3.saving-configurations/3.configmap/
```
2) Проверяем
Проверим, что configmap попал в контейнер, для этого пробросим порт из пода и выполним curl.
Для этого выполним команду, заменив имя pod на имя вашего pod(``можно воспользоваться автоподстановкой по TAB``).
& - это запуск команд в фоновом режиме, потом вводим следующую команду.
```bash
kubectl port-forward my-deployment-5b47d48b58-l4t67 8080:80 &
curl 127.0.0.1:8080
```
В результате выполнения curl увидим имя пода, который обработал запрос. Результат должен быть примерно таким:
```bash
my-deployment-5b47d48b58-l4t67
```
3) Обновим configmap
```bash
kubectl edit configmap my-configmap
# изменим текст ответа
return 200 '$hostname\nOK\n';
```
4) Проверим вывод пода
```bash
curl 127.0.0.1:8080
```
Вывод не изменился
@@ -0,0 +1,18 @@
---
apiVersion: v1
kind: ConfigMap
metadata:
name: my-configmap
data:
default.conf: |
server {
listen 80 default_server;
server_name _;
default_type text/plain;
location / {
return 200 '$hostname\n';
}
}
...
@@ -0,0 +1,40 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 1
selector:
matchLabels:
app: my-app
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: my-app
spec:
containers:
- image: nginx:1.12
name: nginx
ports:
- containerPort: 80
resources:
requests:
cpu: 50m
memory: 100Mi
limits:
cpu: 100m
memory: 100Mi
volumeMounts:
- name: config
mountPath: /etc/nginx/conf.d/
volumes:
- name: config
configMap:
name: my-configmap
...
@@ -0,0 +1,41 @@
# Secret
1) Применим деплоймент
Для этого выполним команду:
```bash
kubectl apply -f ~/slurm/practice/3.saving-configurations/4.downward/
```
2) Смотрим переменные окружения в контейнере
Для этого выполним команду, подставив вместо < RANDOM > нужное значение(`автоподстановка по TAB`):
```bash
kubectl exec -it my-deployment-< RANDOM > -- env
```
3) Смотрим файлы в контейнере /etc/podinfo
Для этого выполним команду, подставив вместо < RANDOM > нужное значение(`автоподстановка по TAB`):
```bash
kubectl exec -it my-deployment-< RANDOM > -- cat /etc/podinfo/labels
kubectl exec -it my-deployment-< RANDOM > -- cat /etc/podinfo/annotations
```
PS: Документация
https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/
https://kubernetes.io/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/
4) Очистка
```
kubectl delete deployment my-deployment
kubectl delete configmap my-configmap-env
kubectl delete configmap my-configmap
kubectl delete secret test
```
@@ -0,0 +1,83 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 1
selector:
matchLabels:
app: my-app
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: my-app
spec:
containers:
- image: nginx:1.12
name: nginx
env:
- name: TEST
value: foo
- name: TEST_1
valueFrom:
secretKeyRef:
name: test
key: test1
- name: __NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: __POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: __POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: __POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: __NODE_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: __POD_SERVICE_ACCOUNT
valueFrom:
fieldRef:
fieldPath: spec.serviceAccountName
ports:
- containerPort: 80
resources:
requests:
cpu: 50m
memory: 100Mi
limits:
cpu: 100m
memory: 100Mi
volumeMounts:
- name: config
mountPath: /etc/nginx/conf.d/
- name: podinfo
mountPath: /etc/podinfo
volumes:
- name: config
configMap:
name: my-configmap
- name: podinfo
downwardAPI:
items:
- path: "labels"
fieldRef:
fieldPath: metadata.labels
- path: "annotations"
fieldRef:
fieldPath: metadata.annotations
...