Commit db55baa3 authored by 胡凯旋's avatar 胡凯旋

update readme

parent 0f77eb83
【WIP】Mac下搭建本地k8s,并进行开发、调试和部署
## 安装Docker/k8s
## 环境准备
### 安装Docker/k8s
1. 安装 [Docker for Mac](https://docs.docker.com/docker-for-mac/install/),Version>=18.06,低版本可能不自带Kubernetes
......@@ -18,7 +19,7 @@ $ ./load_images.sh
![k8s](./image/k8s.jpg)
5. 可选的步骤: 切换`Kubernetes`运行上下文至 `docker-for-desktop`
5. 切换`Kubernetes`运行上下文至 `docker-for-desktop`
```bash
# 一般只有在之前用其他方式运行过Kubernetes才需要
......@@ -49,23 +50,63 @@ http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-da
[`https://github.com/kubernetes/dashboard/wiki/Access-control#admin-privileges`](https://github.com/kubernetes/dashboard/wiki/Access-control#admin-privileges)
## 服务初次部署
1. 添加证书,重启docker
### 安装Helm
为了之后能够使用 gm-cli 更方便地进行本地环境的搭建与开发,需要安装配置helm
```
# 用 homebrew 安装 Helm
$ brew install kubernetes-helm
# 初始化本地 CLI 并 将 Tiller 安装到 Kubernetes cluster
$ helm init
# 更新本地 charts repo
$ helm repo update
```
### 一些初始化配置
1. 添加证书:
```
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ./harbor.crt
```
**重启docker**
2. docker login harbor.test.gengmei
2. docker login
```
docker login harbor.test.gengmei
username: gmuser
password: Gengmei123!
```
3. 创建项目目录,日志目录到指定位置
3. docker-for-mac上添加File Sharing配置 /srv/apps、/data/log,添加后点击Apply & Restart,若报错如下,可不必添加。
![](image/2018-10-25-13-30-29.png)
至此就能使用gm-cli构建本地集群了,具体使用参考 [gm-cli](http://git.igengmei.com/system/gm-cli)
-----------------------------------------------------------------------------------------
## 手动部署集群
下面是不用gm-cli的情况下手动搭建本地集群的步骤
1. 备份之前的路由表,用当前目录下的路由表替换之前的路由表
```
mv /etc/gm-config/storage/static.dir/helios.dir/static_route_table.json /etc/gm-config/storage/static.dir/helios.dir/static_route_table.json.old
cp ./static_route_table.json /etc/gm-config/storage/static.dir/helios.dir/static_route_table.json
```
2. 创建项目目录,日志目录到指定位置
```
sudo mkdir -p /data/log /srv/apps
sudo chown 自己的用户名 /data/log /srv/apps
# 约定日志目录
mkdir -p /data/log/backend/app /data/log/gaia/app /data/log/mimas/app /data/log/doris/app # ...
# 约定代码目录
mkdir -p /srv/apps
```
3 clone 项目代码
```
sudo mkdir -p /data/log/backend/app /data/log/gaia/app /data/log/mimas/app /data/log/doris/app # ...
sudo mkdir -p /srv/apps
cd /srv/apps
git clone git@git.wanmeizhensuo.com:backend/backend.git
git clone git@git.wanmeizhensuo.com:backend/gaia.git
......@@ -79,6 +120,10 @@ cd 项目目录
git checkout paas
docker build --no-cache -t 项目名:local.latest .
```
另外需要一个Redis的镜像:
```
docker pull redis
```
5. 复制 settings_local 到项目目录下
```
......@@ -88,17 +133,7 @@ cp ./settings_local/mimas/settings_local.py /srv/apps/mimas/settings/settings_lo
cp ./settings_local/doris/devel.py /srv/apps/doris/doris/devel.py
```
6. docker-for-mac上添加File Sharing配置 /srv/apps、/data/log,添加后点击Apply & Restart,若报错如下,可不必添加。
![](image/2018-10-25-13-30-29.png)
7. 备份之前的路由表,用当前目录下的路由表替换之前的路由表
```
mv /etc/gm-config/storage/static.dir/helios.dir/static_route_table.json /etc/gm-config/storage/static.dir/helios.dir/static_route_table.json.old
cp ./static_route_table.json /etc/gm-config/storage/static.dir/helios.dir/static_route_table.json
```
8. 设置configmap
6. 设置configmap
```
kubectl create configmap static-route-table --from-file=/etc/gm-config/storage/static.dir/helios.dir/static_route_table.json
kubectl create configmap backend-settings --from-file=/srv/apps/backend/gengmei/settings_local.py
......@@ -107,7 +142,7 @@ kubectl create configmap mimas-settings --from-file=/srv/apps/mimas/settings/set
kubectl create configmap doris-settings --from-file=/srv/apps/doris/doris/devel.py
```
9. 部署Pod和Service
7. 部署Pod和Service
```
# Pod
kubectl create -f deploy/backend-deploy.yml
......@@ -123,15 +158,14 @@ kubectl create -f service/doris-service.yml
kubectl create -f service/redis-service.yml
```
10. 测试服务是否正常
8. 测试服务是否正常
```
kubectl get service -o wide
```
找到backend-service的PORTS, 如下图就是33254,访问localhost:33254
![](./image/2018-10-25-12-10-56.png)
找到backend-service的PORTS, 默认30001,访问 [localhost:30001](localhost:30001) 验证服务
## 服务调试
### 服务调试(不使用gm-cli)
1. 本地开发,对/srv/apps的服务进行开发
2. (如果涉及依赖的更新,先切到项目目录,执行`docker build --no-cache -t 项目名:local.latest .`)
......@@ -141,32 +175,8 @@ kubectl get service -o wide
kubectl replace --force -f deploy/backend-service.yml # 更改了哪个服务,更新时就用deploy目录下的对应文件更新
```
3. 测试
## NEXT -- Helm
为了之后能够使用 gm-cli 更方便地进行本地环境的搭建与开发,需要安装配置helm
```
# 用 homebrew 安装 Helm
$ brew install kubernetes-helm
# 初始化本地 CLI 并 将 Tiller 安装到 Kubernetes cluster
$ helm init
```
4. 测试
以MySQL的部署和删除为例简单介绍一下使用:
```
# 更新本地 charts repo
$ helm repo update
# 安装 mysql chart
$ helm install --name my-mysql stable/mysql
# 删除 mysql
$ helm delete my-mysql
# 删除 mysql 并释放该名字以便后续使用
$ helm delete --purge my-mysql
```
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment