拉起chart包

打包chart包及部署chart仓库服务

(有修改chart包时需要kubectl delete deployment 名,删所有除了backend-service外的,以及helm delete demo --purge删除部署的实例)

1.获取chart文件

cp /home/mcloud/chart-repo /home/mcloud/developer/xubb8

cp /home/mcloud/backend-k8s /home/mcloud/developer/xubb8

2. 修改配置

    进入目录`mysql-chart`

    `configmap-self.yaml`: 修改文件中的`data.config`,改为所使用的k8s环境的kubeconfig配置 (不改的话显示init)

    各服务按需修改各自服务deployment文件中对应的环境变量值(values.yaml文件里)

3. 打包chart包 

    在`mysql-chart`目录中执行如下命令打包chart包

    helm package mysqlha-1m1s

    得到chart包`mysqlha-1m1s-0.3.0.tgz`

4. 部署chart仓库服务 

    假设: 

    1. `mysqlha-1m1s-0.3.0.tgz`在的目录`D:/mysql-chart`中 

    2. chart服务所在机器对外访问ip为`192.168.31.101` 

    执行如下命令启动chart仓库服务

    helm serve --address 192.168.31.101:8879 --repo-path D:/mysql-chart

    **自己的**

    helm serve --address 192.168.159.132:8879 --repo-path /home/xubb/charts/mysql-chart

    nohup helm serve --address 10.236.5.12:8812 --repo-path /home/mcloud/developer/xubb8/chart-repo/redis-chart >/dev/null 2>&1 &

    **注意**:启动chart仓库所在的机器只要k8s集群可以访问即可,chart仓库无需部署在k8s集群上

验证仓库服务起来没:

netstat -tlnp 看8879或ps -ef|grep 8879 或 页面访问192.168.159.132:8879

后端服务拉起方式


注意修改如下内容:

1. `configmap.yaml` 

    修改`data.config`中的内容,改为所使用的k8s环境的kubeconfig配置

2. `deploymeng-backend-service.yaml` 

    `CHART_REPO_URL`:改为所需使用的Chart服务地址192.168.159.132:8879

    `DEFAULT_NODE_IP`:改为k8s机器的node节点worker的任一ip

使用`./backend-service`中的yaml文件拉起backend-service:(后两个yaml执行顺序无先后要求)

kubectl create -f configmap.yaml

kubectl create -f deployment.yaml

kubectl create -f svc.yaml

验证,查看后端服务暴露的3万加的端口kubectl get SVC 

看到端口如30973

通过backend-service拉起chart包(不用在chart包里helm方式)

方法一:通过curl命令

curl命令示例如下:

curl -X PUT "http://192.168.74.138:30609/v1/instance/demo" -H  "accept: application/json" -H  "content-type: application/json" -d "{  \"chart_name\": \"chinaunicom/mysqlha-1m1s\",  \"configuration\": {    \"cpu\": 0.2,    \"memory\": 128  },  \"instance_id\": \"inst001\",  \"project_id\": \"project001\",  \"tenant_id\": \"default\"}"

**自己的**

curl -X PUT "http://192.168.159.132:32612/v1/instance/demo" -H  "accept: application/json" -H  "content-type: application/json" -d "{  \"chart_name\": \"chinaunicom/mysqlha-1m1s\",  \"configuration\": {    \"cpu\": 0.2,    \"memory\": 128  },  \"instance_id\": \"inst001\",  \"project_id\": \"project001\",  \"tenant_id\": \"default\"}"

 方法二:通过swagger页面调用10.236.5.12:30973/swagger(端口号是后端服务端口)

`backend-service`需设置`RUN_MODE=dev`(开发环境才能看见swagger)并配置`GOPATH` 

使用provision创建实例接口即可拉起chart包,body可以参考如下内容:

创建mysql实例:

{

  "chart_name": "chinaunicom/mysqlha-1m1s",

  "configuration": {

    "cpu": 0.2,

    "memory": 128

  },

  "instance_id": "inst001",

  "project_id": "project001",

  "tenant_id": "default"

}

创建redis实例:

{

  "chart_name": "chinaunicom/redis",

  "configuration": {

    "cpu": 0.2,

    "memory": 128

  },

  "instance_id": "inst001",

  "project_id": "project001",

  "tenant_id": "default"

}

注意"instance_id": "inst001","project_id": "project001",两项首个是字母,字母都小写; "tenant_id": "default"是命名空间namespace

执行后返回dashboard的url。

注意整个k8s集群实例名唯一,所以不同命名空间里创建的实例名不能重名。

使用自己的命名空间拉自己的后端服务,创建自己命名空间下的实例:

进入自己目录创建自己的命令空间,并修改后端服务的三个yaml加上namespace,然后拉起后端服务,如下图:

get pod查看pod状态,get SVC查看后端服务端口,连接swagger调用接口创建实例,并查看实例状态或者绑定服务(绑定类型credentials证书; 凭证)。

拉起chart包_第1张图片


拉起chart包_第2张图片

调用接口创建自己命名空间下的实例的tenant_id修改为自己的namespace

创建mysql实例:

{

  "chart_name": "chinaunicom/mysqlha-1m1s",

  "configuration": {

    "cpu": 0.2,

    "memory": 128

  },

  "instance_id": "inst001",

  "project_id": "project001",

  "tenant_id": "xubb8"

}

接口会返回"dashboard_url": "http://10.236.5.15:30839"


拉起chart包_第3张图片

查看实例状态:

kubectl get pod -n xubb8

kubectl get pod -n xubb8 |grep xubbmysql


拉起chart包_第4张图片

(注意deployment pod的区别)

执行一个create -f deployment就会生成一个pod,pod是deployment名加上系列号,只要deployment在,删除pod会自动再拉起一个pod,只有删除deployment才能正真的删除。

拉起chart包_第5张图片

创建自己的chart仓库:

1.修改自己chart包里yaml后 打包chart包 

    在`mysql-chart`目录中执行如下命令打包chart包

    helm package mysqlha-1m1s

    得到chart包`mysqlha-1m1s-0.3.0.tgz`

2. 部署自己chart仓库服务 

    假设: 

    1. `mysqlha-1m1s-0.3.0.tgz`在的目录`D:/mysql-chart`中 

    2. chart服务所在机器对外访问ip为`10.236.5.12` ,给自己的仓库服务端口是8812

    执行如下命令启动chart仓库服务

    nohup helm serve --address 10.236.5.12:8812 --repo-path /home/mcloud/developer/xubb8/chart-repo/redis-chart >/dev/null 2>&1 &

3.修改后端服务backend-service里的deployment.yaml里的仓库url:10.236.5.12:8812


拉起chart包_第6张图片
r

然后create -f 拉起后端服务后get SVC查看后端服务端口,然后IP:后端服务端口/swagger创建实例,返回dashboardurl访问。

你可能感兴趣的:(拉起chart包)