Hard Links vs Symbolic Links
🔗 Hard Link (жёсткая ссылка)
• Указывает не на файл, а на тот же inode, что и оригинальный файл.
• Даже если исходный файл удалён, данные остаются доступными через жёсткую ссылку.
• Должен находиться в той же файловой системе.
• Размер жёсткой ссылки равен размеру файла (так как это тот же файл).
📌 Пример создания Hard Link:
ln original.txt hardlink.txt
📌 Проверка inode (он одинаковый):
ls -li
🔗 Symbolic Link (символическая ссылка, "symlink")
• Это файл-указатель на другой файл или каталог.
• Если исходный файл удалён, симлинк становится битым (нерабочим).
• Может ссылаться на файл в другой файловой системе.
• Размер симлинка — это длина пути к файлу, а не размер самого файла.
📌 Пример создания Symlink:
ln -s original.txt symlink.txt
📌 Проверка симлинка:
ls -l
Когда использовать?
• Hard links хороши для создания резервных копий без дублирования данных.
• Symbolic links удобны для указания на файлы и каталоги в разных местах.
3. Что такое DaemonSet в Kubernetes?
🛠️ DaemonSet — это Kubernetes-объект, который гарантирует, что Pod будет запущен на всех (или выбранных) узлах кластера.
📌 Для чего используется?
• Агент мониторинга (например, Prometheus Node Exporter, Fluentd).
• Логирование (например, Filebeat, Fluent Bit).
• Сетевые сервисы (например, CNI-плагины: Calico, Flannel).
• Системные демоны (например, CSI-драйверы для хранения).
📌 Пример манифеста DaemonSet:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: node-exporter
spec:
selector:
matchLabels:
app: node-exporter
template:
metadata:
labels:
app: node-exporter
spec:
containers:
- name: node-exporter
image: quay.io/prometheus/node-exporter:latest
💡 Разница с Deployment:
Deployment управляет репликами, а DaemonSet запускает по одному Pod на каждом узле.
4. Что такое Taints и Tolerations в Kubernetes?
⚠️ Taints (запреты)
• Ограничивают размещение Pod'ов на узлах.
• Узел с taint принимает только совместимые Pod'ы.
📌 Пример: сделать узел NoSchedule для обычных Pod'ов:
kubectl taint nodes mynode dedicated=special:NoSchedule
✅ Tolerations
• Allow Pods to work on tainted nodes.
📌 Example: Pod with toleration to work on tainted nodes:
tolerations:
- key: "dedicated"
operator: "Equal"
value: "special"
effect: "NoSchedule"
💡 Когда использовать?
• Разделение кластера по типам нагрузок (например, узлы только для AI или базы данных).
• Запрет размещения Pod'ов на master-нодах (node-role.kubernetes.io/master).
🚀 Вывод:
• Hard links = тот же inode, symlinks = указатель на файл.
• ICMP нужен для диагностики сети (ping, traceroute).
• DaemonSet = Pod на каждом узле (логирование, мониторинг).
• Taints/Tolerations = управление размещением Pod'ов.