Продолжение предыдущей статьи"Боевое исключение KubeSphere"В недавнем использовании Kubesphere также записал некоторые проблемы использования, надеясь помочь другим
Восемь проблем загрузки приложений Kubesphere
8.1 Загрузка файла 413
Развернуть приложение в kubesphere.В приложении есть функция загрузки файлов.Проверить последнюю аномальную загрузку, загрузку файла и ошибку ingress413.Kubesphere использует контроллер ingress-nginx, который можно поддерживать, добавляя k-v в аннотацию.
Решение. Примените маршрутизацию, чтобы настроить максимальный размер тела.
Это особенное GitHub.IO/ingress-что я…
8.2 Сервер загрузки больших файлов 504
Ответ 504 серверной части загрузки больших файлов:
proxy read timeoutnginx.ingress.kubernetes.io/proxy-read-timeout
Девять междоменных проблем
kubesphere использует ingress-nginx для поддержки междоменного доступа, вы можете обратиться к следующей ссылке, чтобы добавить ее в аннотацию.
Это особенное GitHub.IO/ingress-что я…
Тестовая среда может использовать хосты для преобразования имени домена в локальное, внешний интерфейс использует nginx для обслуживания статических файлов, а API обратного прокси-сервера можно посмотреть в примере:
server {
listen 80;
server_name localhost;
# 强制https跳转
# rewrite ^(.*)$ https://$host$1 permanent;
location / {
index index.html;
root /smart-frontend;
try_files $uri $uri/ /index.html;
client_body_buffer_size 200m;
charset utf-8;
}
location /api {
proxy_pass http://smart-backend:8080/api;
proxy_read_timeout 1200;
client_max_body_size 1024m;
}
gzip on; #开启gzip
gzip_vary on;
gzip_min_length 1k; #不压缩临界值,大于1k的才压缩,一般不用改
gzip_buffers 4 16k;
gzip_comp_level 6; #压缩级别,数字越大压缩的越好
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png image/x-icon;
}
10 Добавить узлы
В более поздний период бизнес постепенно подошел, а ресурсов узлов кластера стало недостаточно, был добавлен новый узел узла, а к узлу ceph добавлен диск данных узла узла.
10.1 Добавление узлов в кластер ceph
-
Конфигурация системы
-
Бесплатная настройка ключа
-
конфигурация хостов
-
Установка Docker и перенос на диск данных
-
контрольная группа включена
-
добавлен узел данных ceph
Конфигурация кластера ceph добавляет узел диска данных кластера node03 (если класс хранения данных достаточен, вы можете не добавлять узел данных)
[root@node03 docker]# mkfs.xfs /dev/vdd
[root@node03 docker]# mkdir -p /var/local/osd3
[root@node03 docker]# mount /dev/vdd /var/local/osd3/
添加vdd到/etc/fstab中
[root@node03 docker]# yum -y install yum-plugin-priorities epel-release
[root@node03 yum.repos.d]# chmod 777 -R /var/local/osd3/
[root@node03 yum.repos.d]# chmod 777 -R /var/local/osd3/* master节点利用ceph-deploy部署node03节点[root@master ceph]# ceph-deploy install node03
[root@master ceph]# ceph-deploy gatherkeys master
[root@master ceph]# ceph-deploy osd prepare node03:/var/local/osd3
- Активировать OSD
[root@master ceph]# ceph-deploy osd activate node03:/var/local/osd3
- Посмотреть статус
[root@master ceph]# ceph-deploy osd list master node01 node02 node03
- копировать ключ
[root@master ceph]# ceph-deploy admin master node01 node02 node03
- Установить разрешения на узле node03
[root@node03 yum.repos.d]# chmod +r /etc/ceph/ceph.client.admin.keyring
- Настройте MDS на мастере
[root@master ceph]# ceph-deploy mds create node01 node02 node03
- Посмотреть статус
[root@master ceph]# ceph health
[root@master ceph]# ceph - 由于是新增node节点,数据需要平衡回填,此刻查看集群状态[root@master conf]# ceph -s
cluster 5b9eb8d2-1c12-4f6d-ae9c-85078795794b
health HEALTH_ERR
44 pgs backfill_wait
1 pgs backfilling
1 pgs inconsistent
45 pgs stuck unclean
recovery 1/55692 objects degraded (0.002%)
recovery 9756/55692 objects misplaced (17.518%)
2 scrub errors
monmap e1: 1 mons at {master=172.16.60.2:6789/0}
election epoch 35, quorum 0 master
osdmap e2234: 4 osds: 4 up, 4 in; 45 remapped pgs
flags sortbitwise,require_jewel_osds
pgmap v5721471: 192 pgs, 2 pools, 104 GB data, 27846 objects
230 GB used, 1768 GB / 1999 GB avail
1/55692 objects degraded (0.002%)
9756/55692 objects misplaced (17.518%)
146 active+clean
44 active+remapped+wait_backfill
1 active+remapped+backfilling
1 active+clean+inconsistent
recovery io 50492 kB/s, 13 objects/s
client io 20315 B/s wr, 0 op/s rd, 5 op/s wr
- Последняя проблема, в настоящее время из-за нового узла узла, новый узел данных ceph нуждается в синхронизации данных.
[root@master conf]# ceph -s
cluster 5b9eb8d2-1c12-4f6d-ae9c-85078795794b
health HEALTH_ERR
1 pgs inconsistent
2 scrub errors
monmap e1: 1 mons at {master=172.16.60.2:6789/0}
election epoch 35, quorum 0 master
osdmap e2324: 4 osds: 4 up, 4 in
flags sortbitwise,require_jewel_osds
pgmap v5723479: 192 pgs, 2 pools, 104 GB data, 27848 objects
229 GB used, 1769 GB / 1999 GB avail
191 active+clean
1 active+clean+inconsistent
client io 78305 B/s wr, 0 op/s rd, 18 op/s wr修复[root@master conf]# ceph -s
cluster 5b9eb8d2-1c12-4f6d-ae9c-85078795794b
health HEALTH_OK
monmap e1: 1 mons at {master=172.16.60.2:6789/0}
election epoch 35, quorum 0 master
osdmap e2324: 4 osds: 4 up, 4 in
flags sortbitwise,require_jewel_osds
pgmap v5724320: 192 pgs, 2 pools, 104 GB data, 27848 objects
229 GB used, 1769 GB / 1999 GB avail
192 active+clean
client io 227 kB/s wr, 0 op/s rd, 7 op/s wr
# 同步完成
[root@master conf]# ceph health
HEALTH_OK
10.2 Узел Добавить узел
Чтобы упростить добавление узлов, kubesphere предоставляет удобное добавление в один клик.Crybebesphere.com в /docs/v2.1/ в…
Изменить host.ini
master ansible_connection=local ip=172.16.60.2
node01 ansible_host=172.16.60.3 ip=172.16.60.3
node02 ansible_host=172.16.60.4 ip=172.16.60.4
node03 ansible_host=172.16.60.5 ip=172.16.60.5
[kube-master]
master
[kube-node]
master
node01
node02
node03
Выполните скрипт add-nodes.sh в каталоге «/script». После успешного выполнения сценария расширения вы можете увидеть информацию об узле кластера, включая новый узел.Вы можете выбрать «Инфраструктура» в меню консоли KubeSphere, а затем войти на страницу управления хостом, чтобы просмотреть его, или выполнить команду kubectl get node через инструмент Kubectl для просмотра расширенной емкости Подробная информация об узле кластера.
[root@master scripts]# ./add-nodes.sh
Посмотреть подтверждение
[root@master conf]# kubectl get nodes -owide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
master Ready master 136d v1.15.5 172.16.60.2 <none> CentOS Linux 7 (Core) 3.10.0-693.el7.x86_64 docker://18.6.2
node01 Ready node,worker 136d v1.15.5 172.16.60.3 <none> CentOS Linux 7 (Core) 3.10.0-693.el7.x86_64 docker://18.6.2
node02 Ready node,worker 136d v1.15.5 172.16.60.4 <none> CentOS Linux 7 (Core) 3.10.0-693.el7.x86_64 docker://18.6.2
node03 Ready worker 10m v1.15.5 172.16.60.5 <none> CentOS Linux 7 (Core) 3.10.0-693.el7.x86_64 docker://19.3.5
[root@master conf]# kubectl label node node-role.kubernetes.io/node=
common.yaml hosts.ini plugin-qingcloud.yaml
[root@master conf]# kubectl label node node03 node-role.kubernetes.io/node=
node/node03 labeled
[root@master conf]# kubectl get nodes -owide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
master Ready master 136d v1.15.5 172.16.60.2 <none> CentOS Linux 7 (Core) 3.10.0-693.el7.x86_64 docker://18.6.2
node01 Ready node,worker 136d v1.15.5 172.16.60.3 <none> CentOS Linux 7 (Core) 3.10.0-693.el7.x86_64 docker://18.6.2
node02 Ready node,worker 136d v1.15.5 172.16.60.4 <none> CentOS Linux 7 (Core) 3.10.0-693.el7.x86_64 docker://18.6.2
node03 Ready node,worker 11m v1.15.5 172.16.60.5 <none> CentOS Linux 7 (Core) 3.10.0-693.el7.x86_64 docker://19.3.5
[root@master conf]#
Ресурсы кластера одиннадцати K8s неравномерны
Можно обнаружить, что ресурс K8S использует дисбаланс, предыдущее приложение для развертывания предназначено для разработки NodeSelect, что приводит к запуску некоторых системных служб в узле Node, см. Память Node2, что приводит к ненормальным сигналам тревоги или перезапуску кластера.
можно посмотреть по
kubectl get pods -o wide --all-namespaces |grep node02 |awk '{print $1, $2}'
Некоторые системные приложения назначаются главному узлу через nodeselect, чтобы уменьшить нагрузку на память узла node2.
`kubectl get nodes --show-labels`
Просмотр компонентов системы на узле 2 и добавление селектора узлов для изменения расписания
nodeSelector:
node-role.kubernetes.io/master: master
Просмотр существующего развертывания системы kubesphere на node2
После завершения планирования убедитесь, что загрузка памяти node2 снизилась.
Двенадцать devop-проектов kubesphere
Добавлен узел node03. Проект devops находится в очереди на одну неделю, а экземпляр, выполняющий задание, еще не инициализирован. Войдите в кластер для просмотра. Агент.Для скорости прямо на узле node сохраните базовое зеркало, а затем загрузите на node03
[root@master ~]# kubectl describe pods -n kubesphere-devops-system $(kubectl get pods -n kubesphere-devops-system |grep -E "^base" |awk '{print $1}')
Установка приложения Thirteen kubesphere
В настоящее время мой собственный кластер kubesphere 2.1.После добавления репозитория в проект мне все еще нужно вручную запускать зеркальные данные в фоновом режиме, когда я возвращаюсь к этому месту.Я добавил несколько репозиториев helm, кажется, что график внутри не существует.веб интерфейс показывает,что под проектом куда добавляется репо,я создаю новое приложение,а затем выбираю магазин приложений из kubesphere.в нем всего несколько чартов,а чарты добавленного хелма источник не найден.Вы можете использовать команду для поиска внутри сервера. Сообщество консультантов временно получает ответ.Помните, что в фоновом режиме версии v2.0 есть задача по синхронизации графиков.Для текущей версии 2.1 сначала используйте команду helm для ручной установки helm в кластере
[root@master common-service]# helm install -n consul --namespace common-service -f consul/values-production.yaml consul/
NAME: consul
LAST DEPLOYED: Tue Jan 14 17:56:27 2020
NAMESPACE: common-service
STATUS: DEPLOYED
RESOURCES:
==> v1/Pod(related)
NAME READY STATUS RESTARTS AGE
consul-0 0/2 Pending 0 0s
==> v1/Service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
consul ClusterIP None <none> 8400/TCP,8301/TCP,8301/UDP,8300/TCP,8600/TCP,8600/UDP 1s
consul-ui ClusterIP 10.233.59.7 <none> 80/TCP 1s
==> v1/StatefulSet
NAME READY AGE
consul 0/3 0s
==> v1beta1/PodDisruptionBudget
NAME MIN AVAILABLE MAX UNAVAILABLE ALLOWED DISRUPTIONS AGE
consul-pdb 1 N/A 0 1s
NOTES:
** Please be patient while the chart is being deployed **
Consul can be accessed within the cluster on port 8300 at consul.common-service.svc.cluster.local
In order to access to the Consul Web UI:
kubectl port-forward --namespace common-service svc/consul-ui 80:80
echo "Consul URL: http://127.0.0.1:80"
Please take into account that you need to wait until a cluster leader is elected before using the Consul Web UI.
In order to check the status of the cluster you can run the following command:
kubectl exec -it consul-0 -- consul members
Furthermore, to know which Consul node is the cluster leader run this other command:
kubectl exec -it consul-0 -- consul operator raf
Для конкретных вопросов, пожалуйста, обратитесь к сообщению:Crybebesphere.com.to/forum/of/669…
Я сам разобрался с конспектами k8s, и те, кто на подъеме, могут быстро учиться и общаться:GitHub.com/RedHat Series/Арвин…Поддержите KubeSphere, местную платформу управления контейнерами, и внесите свой вклад в сообщество.