Адрес фактического центра электронной коммерции SpringBoot (40k+star):GitHub.com/macro-positive/…
Резюме
Раньше мы всегда использовали командную строку для управления K8S, хотя такой подход выглядит круто для программистов, иногда его использование довольно проблематично. Сегодня мы представим инструмент визуального управления K8S Rancher, его использование может значительно снизить нагрузку на наше управление K8S, я надеюсь помочь всем!
Знакомство с Ранчером
Rancher — это платформа управления контейнерами для компаний, использующих контейнеры. Rancher упрощает процесс использования K8S, разработчики могут запускать K8S где угодно, соответствовать спецификациям ИТ-требований и расширять возможности команд DevOps.
Установка докера
Хотя есть несколько способов установить Rancher, использование Docker для установки, несомненно, является самым простым! Друзья, у которых не установлен Docker, могут сначала установить его.
- Установить
yum-utils
:
yum install -y yum-utils device-mapper-persistent-data lvm2
- Добавьте расположение репозитория docker для источника yum:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- Установите Докер:
yum install docker-ce
- Запустите Докер:
systemctl start docker
Установка RANCHER
После установки Docker мы можем приступить к установке Rancher. В Rancher уже встроен K8S, поэтому дополнительная установка не требуется. Точно так же, как мы установили Minikube, K8S собирается напрямую.
- Сначала загрузите образ Rancher;
docker pull rancher/rancher:v2.5-head
- Запустите контейнер Rancher после завершения загрузки. Rancher работает немного медленно и нужно подождать несколько минут:
docker run -p 80:80 -p 443:443 --name rancher \
--privileged \
--restart=unless-stopped \
-d rancher/rancher:v2.5-head
- После завершения операции вы можете получить доступ к домашней странице Rancher.В первый раз вам необходимо установить пароль учетной записи администратора.Адрес доступа:https://192.168.5.46
- Настроить ранчо
Server URL
, адрес, к которому могут получить доступ другие узлы, если мы хотим установить другие узлы, нам нужно использовать его;
Rancher использует
Начнем с простого использования Rancher.
- На главной странице мы можем напрямую просмотреть все кластеры.В настоящее время у нас есть только кластеры с установленным Rancher;
- Щелкните имя кластера, чтобы просмотреть информацию о состоянии кластера, или нажмите кнопку в правом верхнем углу, чтобы выполнить
kubectl
Заказ;
- Нажмите кнопку «Панель мониторинга», мы можем просмотреть панель мониторинга кластера, содержимое, которое можно просмотреть здесь, намного богаче, и можно просмотреть информацию о развертывании, службе и поде.
Ранчер в действии
Прежде чем мы использовали командную строку для управления K8S, на этот раз мы пытаемся использовать графический интерфейс. Или развернуть приложение SpringBoot в качестве примера, но прийти к развертыванию MySQL.
Развертывание MySQL
- Сначала мы используем
yaml
Создайте развертывание в виде рабочего пути какDeployments->创建->以YAML文件编辑
;
- развертывания
yaml
Содержание выглядит следующим образом, обратите внимание на добавлениеnamespace: default
Эта линия, в противном случае она не сможет создавать;
apiVersion: apps/v1
kind: Deployment
metadata:
# 指定Deployment的名称
name: mysql-deployment
# 指定Deployment的空间
namespace: default
# 指定Deployment的标签
labels:
app: mysql
spec:
# 指定创建的Pod副本数量
replicas: 1
# 定义如何查找要管理的Pod
selector:
# 管理标签app为mysql的Pod
matchLabels:
app: mysql
# 指定创建Pod的模板
template:
metadata:
# 给Pod打上app:mysql标签
labels:
app: mysql
# Pod的模板规约
spec:
containers:
- name: mysql
# 指定容器镜像
image: mysql:5.7
# 指定开放的端口
ports:
- containerPort: 3306
# 设置环境变量
env:
- name: MYSQL_ROOT_PASSWORD
value: root
# 使用存储卷
volumeMounts:
# 将存储卷挂载到容器内部路径
- mountPath: /var/log/mysql
name: log-volume
- mountPath: /var/lib/mysql
name: data-volume
- mountPath: /etc/mysql
name: conf-volume
# 定义存储卷
volumes:
- name: log-volume
# hostPath类型存储卷在宿主机上的路径
hostPath:
path: /home/docker/mydata/mysql/log
# 当目录不存在时创建
type: DirectoryOrCreate
- name: data-volume
hostPath:
path: /home/docker/mydata/mysql/data
type: DirectoryOrCreate
- name: conf-volume
hostPath:
path: /home/docker/mydata/mysql/conf
type: DirectoryOrCreate
- На самом деле, мы также можем настроить атрибут развертывания через страницу, если вы
yaml
Конфигурация не очень знакома, вы можете изменить свойства на странице и сравнить, напримерhostPath.type
Это свойство, вы можете увидеть, что это такое с первого взгляда;
- позже с
yaml
Создайте службу в форме , и путь операцииServices->创建->节点端口->以YAML文件编辑
;
- Услуга
yaml
Содержание следующее,namespace
атрибут не может быть меньше;
apiVersion: v1
kind: Service
metadata:
# 定义空间
namespace: default
# 定义服务名称,其他Pod可以通过服务名称作为域名进行访问
name: mysql-service
spec:
# 指定服务类型,通过Node上的静态端口暴露服务
type: NodePort
# 管理标签app为mysql的Pod
selector:
app: mysql
ports:
- name: http
protocol: TCP
port: 3306
targetPort: 3306
# Node上的静态端口
nodePort: 30306
-
После завершения развертывания необходимо создать новый
mall
базу данных и импортировать связанные таблицы, адрес таблицы:GitHub.com/macro-positive/… -
Вот относительно простой способ импортировать базу данных, создать соединение через Navicat и сначала настроить канал SSH;
- Затем получите IP-адрес, на котором запущен контейнер Rancher (в Minikube мы используем адрес Minikube);
[root@linux-local ~]# docker inspect rancher |grep IPAddress
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.3",
"IPAddress": "172.17.0.3",
- После этого мы можем получить доступ к базе данных в Rancher так же, как к базе данных на сервере Linux, просто напрямую добавим IP-адрес Rancher и порт базы данных.
Разверните приложение SpringBoot
- от
yaml
Создайте развертывание приложения SpringBoot в виде рабочего пути какDeployments->创建->以YAML文件编辑
, информация о конфигурации выглядит следующим образом;
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: default
name: mall-tiny-fabric-deployment
labels:
app: mall-tiny-fabric
spec:
replicas: 1
selector:
matchLabels:
app: mall-tiny-fabric
template:
metadata:
labels:
app: mall-tiny-fabric
spec:
containers:
- name: mall-tiny-fabric
# 指定Docker Hub中的镜像地址
image: macrodocker/mall-tiny-fabric:0.0.1-SNAPSHOT
ports:
- containerPort: 8080
env:
# 指定数据库连接地址
- name: spring.datasource.url
value: jdbc:mysql://mysql-service:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
# 指定日志文件路径
- name: logging.path
value: /var/logs
volumeMounts:
- mountPath: /var/logs
name: log-volume
volumes:
- name: log-volume
hostPath:
path: /home/docker/mydata/app/mall-tiny-fabric/logs
type: DirectoryOrCreate
- от
yaml
Создайте службу в форме , и путь операцииServices->创建->节点端口->以YAML文件编辑
, информация о конфигурации выглядит следующим образом;
apiVersion: v1
kind: Service
metadata:
namespace: default
name: mall-tiny-fabric-service
spec:
type: NodePort
selector:
app: mall-tiny-fabric
ports:
- name: http
protocol: TCP
port: 8080
targetPort: 8080
# Node上的静态端口
nodePort: 30180
- После успешного создания на вкладке Deployments мы можем обнаружить, что экземпляр готов.
приложение для внешнего доступа
По-прежнему используйте обратный прокси-сервер Nginx для доступа к приложениям SpringBoot.
- Поскольку служба Rancher уже занята
80
Порт, служба Nginx может только снова изменить порт, который работает здесь в2080
в порту;
docker run -p 2080:2080 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10
- Добавьте файл конфигурации после создания контейнера NGINX.
mall-tiny-rancher.conf
,будетmall-tiny.macrozheng.com
Обратный прокси-сервер доступа доменного имени к приложению SpringBoot в K8S;
server {
listen 2080;
server_name mall-tiny.macrozheng.com; #修改域名
location / {
proxy_set_header Host $host:$server_port;
proxy_pass http://172.17.0.3:30180; #修改为代理服务地址
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
- Затем измените локальный файл хоста для доступа к серверу Linux и добавьте следующие записи;
192.168.5.46 mall-tiny.macrozheng.com
- После этого вы можете получить прямой доступ к приложению SpringBoot на K8S на локальной машине по адресу:marilyn-tiny.macropositive.com:2080/swagger-UI. …
Суммировать
Использовать Rancher для визуального управления K8S очень просто, что значительно снижает сложность развертывания и управления K8S. Команда Docker может завершить развертывание, а визуальный интерфейс может просматривать различные состояния запущенного приложения. Скрипт K8S прост в исполнении, и это можно сделать в настройках графического интерфейса, которые не пишут скрипты. Подводя итог: это вкусно!
использованная литература
Официальная документация Rancher:docs.rancher.cn/rancher2/
Адрес исходного кода проекта
Эта статьяGitHubGitHub.com/macro-positive/…Он был записан, приветствую всех на Star!