需要對乙個k8s上mysql資料庫修改插入資料,sql語句經常會變動。
可以建議使用jobs和configmap的方式完成。
from centos7-jdk8
copy init.sh /opt/
copy mysql-community-client-5.7.23-1.el7.x86_64.rpm /opt/
run rpm -ivh /opt/mysql-community-client-5.7.23-1.el7.x86_64.rpm --nodeps --force
run mkdir /opt/sql
run chmod +x /opt
workdir /opt
init.sh指令碼:
#!/bin/bash
#execute all script in specified directory
mydate=`date +%f'-'%t'-'%w`
mysql_path=/opt/sql/common #指定的目錄
mysql -h127.0.0.1 -uroot -p12345#lc < /opt/sql/init.sql
for file in $/*
doif [ -f "$file" ] ; then
postfix=`echo $file | awk -f'.' ''`
if [ $postfix = ".sql" ] ; then
mysql -h127.0.0.1 -uroot -p12345 < $file
fifidone
apiversion: batch/v1
kind: job
metadata:
name: mysqlinit
spec:
template:
metadata:
labels:
job-name: mysqlinit
spec:
containers:
- name: mysqlinit1
image: mysql-init:1.0.0
command: ["sh", "init.sh"]
env:
- name: mysql_root_password
valuefrom:
configmapkeyref:
name: allsmart-config
key: mysql_root_password
volumemounts:
- name: init-config
mountpath: /opt/sql
volumes:
- name: init-config
configmap:
name: allsmart-config
items:
- key: cloud.sql
path: common/cloud.sql
- key: config.sql
path: common/config.sql
restartpolicy: never
執行jobs,即可完成對mysql 的修改插入。
原理:所有的sql檔案,如cloud.sql都是通過configmap掛載的,指令碼會遍歷目錄common下的所有sql檔案執行,後續需要修改的話,直接修改configmap即可。
需要新增sql也只需要修改jobs的yaml檔案。
可以參照此方法完成k8s上資料庫的插入部署。
K8s部署prometheus監控K8s細節
prometheus 一些配置檔案可以再github上找到。部署 root kube prometheus manifests 目錄下所有檔案 部署 root kube prometheus manifests setup 目錄下所有檔案 要注意的是自己要建立乙個工作空間 如果報錯執行下面語句 部署...
k8s 多租戶 k8s 基礎介紹
備註 1 每乙個pod裡執行著乙個特殊的容器 pause容器,其他容器都是業務容器,這些業務容器共享pause容器的網路棧和volume 邏輯卷 掛載卷。因此他們之間的通訊和資料交換更為高效。2 k8s設計了pod物件,將每個服務程序包裝到相應的pod中,使其成為pod中執行的乙個容器 contai...
EFK完成k8s應用日誌收集
方案選擇 kubernetes官方提供了efk的日誌收集解決方案,但是這種方案並不適合所有的業務場景,它本身就有一些侷限性,例如 所有日誌都必須是out前台輸出,真實業務場景中無法保證所有日誌都在前台輸出 只能有乙個日誌輸出檔案,而真實業務場景中往往有多個日誌輸出檔案 fluentd並不是常用的日誌...