fix numeration

This commit is contained in:
Sergey Bondarev
2021-11-02 14:17:38 +03:00
parent 22b0b17016
commit f990be6d7e
34 changed files with 21 additions and 21 deletions
@@ -0,0 +1,43 @@
### Resources and Probes
Создаем deployment с ресурсами и пробами
```bash
kubectl apply -f ~/school-dev-k8s/practice/6.network-abstractions/1.probes/deployment-with-stuff.yaml
```
Смотрим что получилось
```bash
kubectl get pod
```
Должны увидеть что-то типа такого:
```bash
NAME READY STATUS RESTARTS AGE
my-deployment-69695544f6-v97jr 1/1 Running 0 20s
my-deployment-69695544f6-xcpq9 1/1 Running 0 20s
```
Поменяем специально Readiness Probe на заведомо неверную в манифесте и применим его снова
```bash
vim ~/school-dev-k8s/practice/6.network-abstractions/1.probes/deployment-with-stuff.yaml
kubectl apply -f ~/school-dev-k8s/practice/6.network-abstractions/1.probes/deployment-with-stuff.yaml
```
Смотрим что получилось
```bash
kubectl get pod
```
Видим что pod'ы не переходят в статус `1/1 Running`. Смотрим describe pod'а:
```bash
kubectl describe po my-deployment-845d88fdcf-9bd29
```
Чистим за собой кластер
```bash
kubectl delete deployment --all
```
@@ -0,0 +1,57 @@
---
# file: practice/1.kube-basics-lecture/4.resources-and-probes/deployment-with-stuff.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 2
selector:
matchLabels:
app: my-app
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: my-app
spec:
containers:
- image: quay.io/testing-farm/nginx:1.12
name: nginx
ports:
- containerPort: 80
readinessProbe:
failureThreshold: 3
httpGet:
path: /
port: 80
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
livenessProbe:
failureThreshold: 3
httpGet:
path: /
port: 80
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
initialDelaySeconds: 10
startupProbe:
httpGet:
path: /
port: 80
failureThreshold: 30
periodSeconds: 10
resources:
requests:
cpu: 10m
memory: 100Mi
limits:
cpu: 100m
memory: 100Mi
...
@@ -0,0 +1,69 @@
## Смотрим на Service'ы Kubernetes'а
1) Деплоим "основное" приложение
```bash
cd ~/school-dev-k8s/practice/6.network-abstractions/2.ingress-and-services/
kubectl apply -f app
```
2) Запустим тестовое приложение, с которого мы будем обращаться к основному:
```bash
kubectl run test --image=centosadmin/utils:0.3 -it bash
exit
```
3) Создаем Service типа ClusterIP:
```bash
kubectl apply -f clusterip.yaml
```
4) Убедимся, что Service работает. Узнаем его IP, зайдем внутрь нашего тестового Pod'а и обратимся к основному приложению, используя имя сервиса и IP:
```bash
kubectl get svc
kubectl exec test -it bash
curl <ip-адрес сервиса>
curl my-service
exit
```
## Важно! На Service'ы типа NodePort и LoadBalancer просто смотрим. Их в кластере не создаем!
5) Смотрим как выглядят Service'ы типа Nodeport и LoadBalancer:
```bash
cat nodeport.yaml
cat loadbalancer.yaml
```
6) Подчищаем за собой:
```bash
kubectl delete svc my-service-lb my-service-np
```
## Разбираемся с Ingress'ами
1) Создадим Ingress, предварительно поправив плейсхолдер:
```bash
vim host-ingress.yaml
kubectl apply -f host-ingress.yaml
kubectl get ing
```
2) Попробуем покурлить:
```bash
curl my.s<свой номер логина>.mcs.slurm.io
curl notmy.s<свой номер логина>.mcs.slurm.io
```
@@ -0,0 +1,15 @@
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,55 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 2
selector:
matchLabels:
app: my-app
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: my-app
spec:
containers:
- image: quay.io/testing-farm/nginx:1.12
name: nginx
ports:
- containerPort: 80
readinessProbe:
failureThreshold: 3
httpGet:
path: /
port: 80
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
livenessProbe:
failureThreshold: 3
httpGet:
path: /
port: 80
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
initialDelaySeconds: 10
resources:
requests:
cpu: 10m
memory: 100Mi
limits:
cpu: 10m
memory: 100Mi
volumeMounts:
- name: config
mountPath: /etc/nginx/conf.d/
volumes:
- name: config
configMap:
name: my-configmap
@@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
ports:
- port: 80
targetPort: 80
selector:
app: my-app
type: ClusterIP
@@ -0,0 +1,16 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress-nginx
spec:
rules:
- host: my.s<свой номер логина>.mcs.slurm.io
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: my-service
port:
number: 80
@@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: my-service-lb
spec:
ports:
- port: 80
targetPort: 80
selector:
app: my-app
type: LoadBalancer
@@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: my-service-np
spec:
ports:
- port: 80
targetPort: 80
selector:
app: my-app
type: NodePort