Развертывание кластера k8s (подробная практическая версия построения кластера k8s)
Развертывание кластера k8s (подробная практическая версия построения кластера k8s)

1. Два способа развертывания k8s:

На данный момент существует два основных способа развертывания кластеров Kubernetes в продакшене:

kubeadm

Kubeadm — это инструмент развертывания K8s, который обеспечивает kubeadm init и kubeadm join для быстрого развертывания кластеров Kubernetes.

двоичный пакет

Загрузите дистрибутивную версию двойного с github. пакет,Развертывание каждого компонента вручную,Сформируйте кластер Kubernetes.

В этом эксперименте для создания кластера используется kubeadm.

2. Подготовка среды

Требования к серверу:

Рекомендуемая минимальная аппаратная конфигурация: 2-ядерный процессор, 2 ГБ памяти, 20 ГБ жесткого диска.

Лучше всего, чтобы сервер имел доступ к внешней сети. Если сервер не может получить доступ к Интернету, соответствующее изображение необходимо заранее загрузить и импортировать в узел.

Программная среда:

Операционная система: centos7.6.1810

Docker:20-ce

K8s:1.23

Планирование сервера: (в этом эксперименте используется виртуальная машина)

k8s-master:192.168.239.137

k8s-node1:192.168.239.138

k8s-node2:192.168.239.139

3. Конфигурация инициализации

3.1 Подготовка среды установки: Следующие операции необходимо выполнить на всех узлах.

Отключить брандмауэр

systemctl stop firewalld

systemctl disable firewalld

Выключи Селинукс

sed -i 's/enforcing/disabled/' /etc/selinux/config # постоянный

setenforce 0 # временный

Закрыть обмен

swapoff -a # временный

sed -ri 's/.swap./#&/' /etc/fstab # постоянный

Задайте имя хоста согласно плану

hostnamectl set-hostname <hostname>

Добавляем хосты в мастер

cat >> /etc/hosts << EOF

192.168.239.137 k8s-master

192.168.239.138 k8s-node1

192.168.239.139 k8s-node2

EOF

Передача мостового IPv4-трафика в цепочку iptables

cat > /etc/sysctl.d/k8s.conf << EOF

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

sysctl --system # вступить в силу

Синхронизация времени

yum install ntpdate -y

ntpdate time.windows.com

k8s-master
k8s-master
k8s-node1
k8s-node1
k8s-node2
k8s-node2

3.2. Установите Docker, kubeadm и kubelet [все узлы].

Установите докер:

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

yum -y install docker-ce

systemctl enable docker && systemctl start docker

Настройте ускоритель загрузки изображений:

vim /etc/docker/daemon.json

{

"registry-mirrors": "https://b9pmyelo.mirror.aliyuncs.com",

"exec-opts": "native.cgroupdriver=systemd"

}

systemctl restart docker

информация о докере #Просмотр информации о докере и подтверждение

Добавить источник программного обеспечения:

cat > /etc/yum.repos.d/kubernetes.repo << EOF

kubernetes

name=Kubernetes

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=0

repo_gpgcheck=0

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

Установите kubeadm, kubelet, kubectl:

yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0

systemctl enable kubelet

4. Развертывание k8s-master [выполнение мастера]

4.1 развертывание kubeadm (нужно немного подождать)

kubeadm init \

--apiserver-advertise-address=192.168.239.137 \

--image-repository registry.aliyuncs.com/google_containers \

--kubernetes-version v1.23.0 \

--service-cidr=10.96.0.0/12 \

--pod-network-cidr=10.244.0.0/16 \

--ignore-preflight-errors=all

--apiserver-advertise-address адрес объявления кластера

--image-repository Поскольку адрес извлечения изображения по умолчанию k8s.gcr.io недоступен в Китае.

--kubernetes-version Версия K8s, соответствующая установленной выше

--service-cidr Внутренняя виртуальная сеть кластера, вход для единого доступа к модулям

--pod-network-cidr Сеть подов, соответствующая yaml сетевого компонента CNI, развернутому ниже

После инициализации будет выведена команда соединения. Сначала скопируйте ее и используйте, когда узел присоединяется к мастеру.

4.2. Скопируйте файл сертификации k8s.

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

Просмотр рабочих узлов:

kubectl get nodes

kubectl get nodes
kubectl get nodes

Примечание. Поскольку сетевой плагин еще не развернут, он не готов, продолжайте.

5. Настройте узел узла k8s [работа узла узла]

5.1. Добавьте новый узел в кластер и выполните выходные данные команды kubeadm join в kubeadm init.

Срок действия токена по умолчанию составляет 24 часа. По истечении срока действия токен больше не доступен. На данный момент вам необходимо заново создать токен. Для его быстрой генерации можно напрямую использовать команду:

kubeadm token create --print-join-command

6. Разверните сетевой плагин CNI.

После завершения вышеуказанных операций каждый рабочий узел присоединился к кластеру, но его статус — NoReady. Это связано с тем, что без них они не могут обмениваться данными между хостами. Основная функция сетевого модуля CNI — обеспечить возможность ресурсам модуля взаимодействовать между хостами. Для настройки выполните следующие команды на главном узле:

wget https://docs.projectcalico.org/manifests/calico.yaml

После загрузки вам необходимо изменить определение сети Pod (CALICO_IPV4POOL_CIDR), которое совпадает с указанным ранее в --pod-network-cidr init kubeadm.

После изменения файла разверните:

kubectl apply -f calico.yaml

kubectl get pods -n kube-system #Пройдет некоторое время, прежде чем выполнение завершится, прежде чем все заработает

Примечание. Все файлы yaml в будущем будут выполняться только на главном узле.

Каталог установки: /etc/kubernetes/

Каталог файла конфигурации компонента: /etc/kubernetes/manifests/

7. Развертывание информационной панели

Dashboard — это официально предоставляемый пользовательский интерфейс, который можно использовать для базового управления ресурсами K8s.

Адрес загрузки YAML:

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml

По умолчанию доступ к информационной панели возможен только внутри кластера. Измените службу на тип NodePort и откройте ее снаружи:

vi recommended.yaml

...

kind: Service

apiVersion: v1

metadata:

labels:

Язык кода:txt
копировать
k8s-app: kubernetes-dashboard

name: kubernetes-dashboard

namespace: kubernetes-dashboard

spec:

ports:

Язык кода:txt
копировать
- port: 443
  targetPort: 8443
  nodePort: 30001  selector:
    k8s-app: kubernetes-dashboard
  type: NodePort
...

Адрес доступа: https://NodeIP:30001

Создайте учетную запись службы и привяжите роль администратора кластера по умолчанию:

Создать пользователя

kubectl create serviceaccount dashboard-admin -n kube-system

Авторизация пользователя

kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

Получить токен пользователя

kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')

Используйте выходной токен для входа в панель мониторинга.

Dashboard
Dashboard
boy illustration
Устраните проблему совместимости между версией Spring Boot и Gradle Java: возникла проблема при настройке корневого проекта «demo1» > Не удалось.
boy illustration
Научите вас шаг за шагом, как настроить Nginx.
boy illustration
Это руководство — все, что вам нужно для руководства по автономному развертыванию сервера для проектов Python уровня няни (рекомендуемый сборник).
boy illustration
Не удалось запустить docker.service — Подробное объяснение идеального решения ️
boy illustration
Настройка файлового сервера Samba в системе Linux Centos. Анализ NetBIOS (супер подробно)
boy illustration
Как настроить метод ssh в Git, как получить и отправить код через метод ssh
boy illustration
RasaGpt — платформа чат-ботов на основе Rasa и LLM.
boy illustration
Nomic Embed: воспроизводимая модель внедрения SOTA с открытым исходным кодом.
boy illustration
Улучшение YOLOv8: EMA основана на эффективном многомасштабном внимании, основанном на межпространственном обучении, и эффект лучше, чем у ECA, CBAM и CA. Малые цели имеют очевидные преимущества | ICASSP2023
boy illustration
Урок 1 серии Libtorch: Тензорная библиотека Silky C++
boy illustration
Руководство по локальному развертыванию Stable Diffusion: подробные шаги и анализ распространенных проблем
boy illustration
Полностью автоматический инструмент для работы с видео в один клик: VideoLingo
boy illustration
Улучшения оптимизации RT-DETR: облегченные улучшения магистрали | Support Paddle облегченный rtdetr-r18, rtdetr-r34, rtdetr-r50, rtdet
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | Деформируемое внимание с большим ядром (D-LKA Attention), большое ядро ​​​​свертки улучшает механизм внимания восприимчивых полей с различными функциями
boy illustration
Создано Datawhale: выпущено «Руководство по тонкой настройке развертывания большой модели GLM-4»!
boy illustration
7B превышает десятки миллиардов, aiXcoder-7B с открытым исходным кодом Пекинского университета — это самая мощная модель большого кода, лучший выбор для корпоративного развертывания.
boy illustration
Используйте модель Huggingface, чтобы заменить интерфейс внедрения OpenAI в китайской среде.
boy illustration
Оригинальные улучшения YOLOv8: несколько новых улучшений | Сохранение исходной информации — алгоритм отделяемой по глубине свертки (MDSConv) |
boy illustration
Второй пилот облачной разработки | Быстро поиграйте со средствами разработки на базе искусственного интеллекта
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция с нулевым кодированием и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
Решенная Ошибка | Загрузка PyTorch медленная: TimeoutError: [Errno 110] При загрузке факела истекло время ожидания — Cat Head Tiger
boy illustration
Brother OCR, библиотека с открытым исходным кодом для Python, которая распознает коды проверки.
boy illustration
Новейшее подробное руководство по загрузке и использованию последней демонстрационной версии набора данных COCO.
boy illustration
Выпущен отчет о крупной модели финансовой отрасли за 2023 год | Полный текст включен в загрузку |
boy illustration
Обычные компьютеры также могут работать с большими моделями, и вы можете получить личного помощника с искусственным интеллектом за три шага | Руководство для начинающих по локальному развертыванию LLaMA-3
boy illustration
Одной статьи достаточно для анализа фактора транскрипции SCENIC на Python (4)
boy illustration
Бросая вызов ограничениям производительности небольших видеокарт, он научит вас запускать большие модели глубокого обучения с ограниченными ресурсами, а также предоставит полное руководство по оценке и эффективному использованию памяти графического процессора!
boy illustration
Команда Fudan NLP опубликовала 80-страничный обзор крупномасштабных модельных агентов, в котором в одной статье представлен обзор текущего состояния и будущего агентов ИИ.
boy illustration
[Эксклюзив] Вы должны знать о новой функции JetBrains 2024.1 «Полнострочное завершение кода», чтобы решить вашу путаницу!
boy illustration
Краткое изложение базовых знаний о регистрации изображений 1.0