В запросе скорее всего текст технической направленности из области разработки и тестирования программного обеспечения. Основной язык текста запроса — английский.
В запросе представлен набор команд для установки и настройки Kubernetes на сервере с операционной системой Ubuntu. Команды включают в себя установку необходимых пакетов, настройку конфигурационных файлов и запуск сервисов.
Также в запросе представлены команды для установки cri-dockerd, который является интерфейсом между Docker и Kubernetes. Cri-dockerd позволяет использовать Docker контейнеры в качестве подов (контейнеров) в кластере Kubernetes.
Далее в запросе приведены команды для создания и запуска высокодоступного балансировщика нагрузки с использованием keepalived и nginx-lb. Keepalived обеспечивает высокую доступность виртуальных IP-адресов, а nginx-lb обеспечивает балансировку нагрузки между узлами кластера.
Наконец, в запросе представлена информация о проекте dorycli, который используется для автоматизации процесса установки и настройки высокодоступных сервисов в Kubernetes. Dorycli предоставляет набор команд и шаблонов для быстрой и простой настройки различных сервисов, включая балансировщики нагрузки.
Для получения более подробной информации о каждой команде и её параметрах рекомендуется обратиться к документации соответствующих проектов или использовать справочные системы, такие как man или info. Инициализация высокодоступного кластера Kubernetes
В файле конфигурации /etc/hosts необходимо настроить сопоставление имён хостов с IP-адресами.
Виртуальное имя хоста: k8s-vip.
Сокет времени выполнения контейнера в среде Kubernetes:
Сокет keepalived: unix:///var/run/cri-dockerd.sock.
Адрес подсети модуля Kubernetes (если не задан, используется адрес по умолчанию): 10.244.0.0/24.
Адрес подсети службы Kubernetes (если не задан, используется адрес по умолчанию): 10.96.0.0/16.
Пароль аутентификации keepalived (если не задан, генерируется случайный пароль).
Конфигурация управляющего узла Kubernetes:
количество узлов должно быть не менее трёх и только одно из них может иметь высокий приоритет;
имена хостов должны быть заданы в файле /etc/hosts;
каждый узел должен иметь уникальный IP-адрес;
все узлы должны использовать одну и ту же сетевую карту для взаимодействия друг с другом.
Пример конфигурации:
hostname: k8s-master01; ipAddress: 192.168.0.101; networkInterface: eth0; keepalivedPriority: 120.
hostname: k8s-master02; ipAddress: 192.168.0.102; networkInterface: eth0; keepalivedPriority: 110.
hostname: k8s-master03; ipAddress: 192.168.0.103; networkInterface: eth0; keepalivedPriority: 100.
С помощью команды dorycli install ha script -o . -f kubeadm-ha.yaml --language zh создаётся конфигурация балансировщика нагрузки.
Файл kubeadm-config.yaml используется для инициализации кластера Kubernetes.
Для настройки балансировщика нагрузки необходимо установить путь к файлам на узлах master: export LB_DIR=/data/k8s-lb.
Файлы балансировщика нагрузки копируются на каждый узел master с помощью команд scp и ssh.
На каждом узле master запускается балансировщик нагрузки с помощью docker-compose.
После настройки балансировщика нагрузки можно инициализировать кластер Kubernetes с помощью команды kubeadm init --config=kubeadm-config.yaml --upload-certs. Данные, сохраните их в тайне!
В качестве меры предосторожности загруженные сертификаты будут удалены через два часа. При необходимости вы можете использовать команду «kubeadm init phase upload-certs --upload-certs», чтобы перезагрузить сертификаты позже.
Затем вы можете присоединиться к любому количеству рабочих узлов, выполнив следующие действия от имени пользователя root:
kubeadm join 192.168.0.100:16443 --token tgszyf.c9dicrflqy85juaf --discovery-token-ca-cert-hash sha256:xxx;
kubeadm join 192.168.0.100:16443 --token tgszyf.c9dicrflqy85juaf --discovery-token-ca-cert-hash sha256:xxx --control-plane --certificate-key xxx;
kubectl taint nodes --all node-role.kubernetes.io/control-plane-.
kubectl get pods -A -o wide. 26m 192.168.0.102 k8s-master02
kube-system kube-controller-manager-k8s-master03 1/1 Running 0 24m 192.168.0.103 k8s-master03
kube-system kube-proxy-gr2pt 1/1 Running 0 26m 192.168.0.102 k8s-master02
kube-system kube-proxy-rkb9b 1/1 Running 0 30m 192.168.0.101 k8s-master01
kube-system kube-proxy-rvmv4 1/1 Running 0 25m 192.168.0.103 k8s-master03
kube-system kube-scheduler-k8s-master01 1/1 Running 1 (26m ago) 30m 192.168.0.101 k8s-master01
kube-system kube-scheduler-k8s-master02 1/1 Running 0 26m 192.168.0.102 k8s-master02
kube-system kube-scheduler-k8s-master03 1/1 Running 0 23m 192.168.0.103 k8s-master03
kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master01 Ready control-plane 31m v1.28.0 k8s-master02 Ready control-plane 27m v1.28.0 k8s-master03 Ready control-plane 26m v1.28.0
kubectl run nginx --image=nginx:1.23.1-alpine --image-pull-policy=IfNotPresent --port=80 -l=app=nginx kubectl create service nodeport nginx --tcp=80:80 --node-port=31000 curl k8s-vip:31000
Для управления приложениями, развёрнутыми в Kubernetes, рекомендуется использовать панель управления kubernetes-dashboard.
Чтобы узнать больше, ознакомьтесь с официальной документацией на GitHub: https://github.com/kubernetes/dashboard
Установка:
# Установка kubernetes-dashboard
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml
# Настройка сервиса kubernetes-dashboard для использования nodePort
cat << EOF | kubectl apply -f -
apiVersion: v1
kind: Service
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
ports:
- port: 443
protocol: TCP
targetPort: 8443
nodePort: 30000
selector:
k8s-app: kubernetes-dashboard
type: NodePort
EOF
# Создание учётной записи администратора
kubectl create serviceaccount -n kube-system admin-user --dry-run=client -o yaml | kubectl apply -f -
# Создание привязки кластера ролей администратора
kubectl create clusterrolebinding admin-user --clusterrole=cluster-admin --serviceaccount=kube-system:admin-user --dry-run=client -o yaml | kubectl apply -f -
# Вручную создать секрет для учётной записи службы
cat << EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
name: admin-user-secret
namespace: kube-system
annotations:
kubernetes.io/service-account.name: admin-user
type: kubernetes.io/service-account-token
EOF
# Получить токен управления Kubernetes
kubectl -n kube-system get secret admin-user-secret -o jsonpath='{ .data.token }' | base64 -d
# Доступ к панели управления kubernetes через браузер: https://k8s-vip:30000
# Войдите в панель управления kubernetes, используя токен управления
## [Необязательно] Установка контроллера входа Traefik
- Чтобы использовать функцию входа Kubernetes, необходимо установить контроллер входа. Рекомендуется использовать Traefik.
- Подробнее см. на официальном сайте: https://doc.traefik.io/traefik/
- Разверните Traefik на всех узлах master в кластере Kubernetes:
```shell script
# Скачать репозиторий Helm для Traefik
helm repo add traefik https://traefik.github.io/charts
helm fetch traefik/traefik --untar
# Развернуть Traefik как daemonset
cat << EOF > traefik.yaml
deployment:
kind: DaemonSet
image:
name: traefik
tag: v2.6.5
ports:
web:
hostPort: 80
websecure:
hostPort: 443
service:
type: ClusterIP
EOF
# Установить Traefik
kubectl create namespace traefik --dry-run=client -o yaml | kubectl apply -f -
helm install -n traefik traefik traefik/ -f traefik.yaml
# Проверить установку
helm -n traefik list
kubectl -n traefik get pods -o wide
kubectl -n traefik get services -o wide
# Проверьте успешность установки Traefik, если вывод 404 page ## [Необязательно] Установка инструмента сбора данных о производительности metrics-server
- Для использования функции горизонтального автомасштабирования модулей Kubernetes необходимо установить metrics-server.
- Чтобы узнать больше, ознакомьтесь с официальной документацией в README.md на GitHub: [metrics-server](https://github.com/kubernetes-sigs/metrics-server).
```shell script
# Скачиваем образ
docker pull registry.aliyuncs.com/google_containers/metrics-server:v0.6.1
docker tag registry.aliyuncs.com/google_containers/metrics-server:v0.6.1 k8s.gcr.io/metrics-server/metrics-server:v0.6.1
# Получаем файл установки metrics-server yaml
curl -O -L https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.1/components.yaml
# Добавляем параметр --kubelet-insecure-tls
sed -i 's/- args:/- args:\n - --kubelet-insecure-tls/g' components.yaml
# Устанавливаем metrics-server
kubectl apply -f components.yaml
# Ждём, пока metrics-server заработает нормально
kubectl -n kube-system get pods -l=k8s-app=metrics-server
# Проверяем метрики узлов
kubectl top nodes
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
k8s-master01 146m 7% 2284Mi 59%
k8s-master02 123m 6% 2283Mi 59%
k8s-master03 114m 5% 2180Mi 57%
После установки metrics-server можно также отобразить данные о производительности на панели инструментов Kubernetes.
# Устанавливаем istioctl, клиент можно скачать по ссылке https://github.com/istio/istio/releases/tag/1.18.2
# Скачиваем и устанавливаем istioctl
wget https://github.com/istio/istio/releases/download/1.18.2/istioctl-1.18.2-linux-amd64.tar.gz
tar zxvf istioctl-1.18.2-linux-amd64.tar.gz
mv istioctl /usr/bin/
# Убеждаемся, что istioctl установлен правильно
istioctl version
# Используем istioctl для развёртывания istio в Kubernetes
istioctl install --set profile=demo \
--set values.gateways.istio-ingressgateway.type=ClusterIP \
--set values.global.imagePullPolicy=IfNotPresent \
--set values.global.proxy_init.resources.limits.cpu=100m \
--set values.global.proxy_init.resources.limits.memory=100Mi \
--set values.global.proxy.resources.limits.cpu=100m \
--set values.global.proxy.resources.limits.memory=100Mi
# Проверяем развёртывание istio
kubectl -n istio-system get pods,svc
🚀🚀🚀 Dory-Engine — лучшие практики платформы (https://www.bilibili.com/video/BV1oM4y117Pj/)
Dory-Engine — это простой облачный движок для приложений, который позволяет разработчикам самостоятельно переносить свои программы из исходного кода, компилировать, упаковывать и развёртывать их в различных средах Kubernetes или хоста без необходимости изучения, написания или настройки.
Инструкции по установке см. на странице: https://github.com/dory-engine/dorycli.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )