wiki/docs/Other/k8s.md
ilyamak04 ab70635e09
All checks were successful
Build MkDocs / build-and-deploy (push) Successful in 17s
start k8s
2025-06-18 18:02:58 +03:00

2.8 KiB
Raw Blame History

YAML Синтаксис

Основные сущности

  • Скалярные значения
string_value: hello
number_value: 42
float_value: 3.14
boolean_true: true
boolean_false: false
  • Списки (массивы)
servers:
  - web01
  - web02
  - db01

или

servers: [web01, web02, db01]
  • Словари
user:
  name: "ivan"
  age: 30
  admin: true

или

user: {name: ivan, age: 30, admin: true}
  • Многострочные строки
description: |
  Это многострочный текст.
  Он сохраняет переносы строк.
  Полезно для документации.

command: >
  Это тоже многострочный текст,
  но переносы будут заменены пробелами.
  • | - сохраняет всё как есть, включая \n
  • > - склеивает строки в одну с пробелами

Расширенные возможности

  • Ссылки и якори ($, *)
defaults: &default_settings
  retries: 3
  timeout: 30

server1:
  <<: *default_settings
  timeout: 10  # переопределено

server2:
  <<: *default_settings
  • Линтер
yamllint fine_name.yml

Разное

  • Null
empty1: null
empty2: ~
empty3:
  • Boolean
bool1: yes   # интерпретируется как true
bool2: no    # false
bool3: on    # true
bool4: off   # false

чтобы явно задать строку, необходимо использовать кавычки

literal_string: "yes"   # не будет true

POD

k8s - кластерная ОС

POD - одно запущенное приложение в кластере k8s, минимальная абстракция k8s (внутри пода может быть несколько контейнеров, и в поде всегда минимум 2 контейнера: приложение, сетевой неймспейс) (контейнер внутри пода, как отдельный процесс в ОС)

  • kubectl create -f pod.yml - создать под согласно конфигу из файла
  • kubectl get pod - список подов
  • kubectl describe pod <pod_name> - описание объекта
  • kebectl delete pod <pod_name> или kubectl delete -f pod.yml - удаление пода
# пример описания пода
---
apiVersion: v1 
kind: Pod # тип сущности
metadata:
  name: mypod # в рамках одного пространства имён имя уникально
spec: # описание объекта
  containers:
    - name: nginx
      image: nginx:latest
      ports:
        - containerPort: 80