新增docker和K8S一键部署脚本
parent
1f5a827ba9
commit
4925cc8479
|
@ -1,23 +0,0 @@
|
|||
version: "3.2"
|
||||
services:
|
||||
flask-consul:
|
||||
image: swr.cn-south-1.myhuaweicloud.com/starsl.cn/flask-consul:latest
|
||||
container_name: flask-consul
|
||||
hostname: flask-consul
|
||||
restart: always
|
||||
volumes:
|
||||
- /usr/share/zoneinfo/PRC:/etc/localtime
|
||||
environment:
|
||||
consul_token: xxxxx-xxxxx-xxxxx
|
||||
consul_url: http://x.x.x.x:8500/v1
|
||||
admin_passwd: xxxxxxxx
|
||||
log_level: INFO
|
||||
nginx-consul:
|
||||
image: swr.cn-south-1.myhuaweicloud.com/starsl.cn/nginx-consul:latest
|
||||
container_name: nginx-consul
|
||||
hostname: nginx-consul
|
||||
restart: always
|
||||
ports:
|
||||
- "1026:1026"
|
||||
volumes:
|
||||
- /usr/share/zoneinfo/PRC:/etc/localtime
|
Binary file not shown.
|
@ -0,0 +1,98 @@
|
|||
#!/bin/bash
|
||||
tsspath="/opt/tensuns"
|
||||
uuid=`uuidgen`
|
||||
adminpwd=`uuidgen|awk -F- '{print $1}'`
|
||||
mkdir -p $tsspath/consul/config
|
||||
cat <<EOF > $tsspath/consul/config/consul.hcl
|
||||
log_level = "error"
|
||||
data_dir = "/consul/data"
|
||||
client_addr = "0.0.0.0"
|
||||
ui_config{
|
||||
enabled = true
|
||||
}
|
||||
ports = {
|
||||
grpc = -1
|
||||
https = -1
|
||||
dns = -1
|
||||
grpc_tls = -1
|
||||
serf_wan = -1
|
||||
}
|
||||
peering {
|
||||
enabled = false
|
||||
}
|
||||
connect {
|
||||
enabled = false
|
||||
}
|
||||
server = true
|
||||
bootstrap_expect=1
|
||||
acl = {
|
||||
enabled = true
|
||||
default_policy = "deny"
|
||||
enable_token_persistence = true
|
||||
tokens {
|
||||
initial_management = "$uuid"
|
||||
agent = "$uuid"
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
cat <<EOF > $tsspath/docker-compose.yaml
|
||||
version: '3.6'
|
||||
services:
|
||||
consul:
|
||||
image: hashicorp/consul:1.16
|
||||
container_name: consul
|
||||
hostname: consul
|
||||
restart: always
|
||||
volumes:
|
||||
- $tsspath/consul/data:/consul/data
|
||||
- $tsspath/consul/config:/consul/config
|
||||
- /usr/share/zoneinfo/PRC:/etc/localtime
|
||||
command: "agent"
|
||||
networks:
|
||||
- TenSunS
|
||||
|
||||
flask-consul:
|
||||
image: swr.cn-south-1.myhuaweicloud.com/starsl.cn/flask-consul:latest
|
||||
container_name: flask-consul
|
||||
hostname: flask-consul
|
||||
restart: always
|
||||
volumes:
|
||||
- /usr/share/zoneinfo/PRC:/etc/localtime
|
||||
environment:
|
||||
consul_token: $uuid
|
||||
consul_url: http://consul:8500/v1
|
||||
admin_passwd: $adminpwd
|
||||
log_level: INFO
|
||||
depends_on:
|
||||
- consul
|
||||
networks:
|
||||
- TenSunS
|
||||
|
||||
nginx-consul:
|
||||
image: swr.cn-south-1.myhuaweicloud.com/starsl.cn/nginx-consul:latest
|
||||
container_name: nginx-consul
|
||||
hostname: nginx-consul
|
||||
restart: always
|
||||
ports:
|
||||
- "1026:1026"
|
||||
volumes:
|
||||
- /usr/share/zoneinfo/PRC:/etc/localtime
|
||||
depends_on:
|
||||
- flask-consul
|
||||
networks:
|
||||
- TenSunS
|
||||
|
||||
networks:
|
||||
TenSunS:
|
||||
name: TenSunS
|
||||
driver: bridge
|
||||
ipam:
|
||||
driver: default
|
||||
EOF
|
||||
|
||||
echo -e "\n后羿运维平台默认的admin密码是:\033[31;1m$adminpwd\033[0m\n修改密码请编辑 $tsspath/docker-compose.yaml 查找并修改变量 admin_passwd 的值\n"
|
||||
echo "正在启动后羿运维平台..."
|
||||
cd $tsspath && docker-compose up -d
|
||||
echo -e "\n请使用浏览器访问 http://{你的IP}:1026 并登录使用\n"
|
||||
echo -e "\033[31;1mhttp://`ip route get 1.2.3.4 | awk '{print $NF}'|head -1`:1026\033[0m\n"
|
|
@ -0,0 +1,64 @@
|
|||
#!/bin/bash
|
||||
uuid=`uuidgen`
|
||||
mkdir -p /opt/consul/config
|
||||
cat <<EOF > /opt/consul/config/consul.hcl
|
||||
log_level = "error"
|
||||
data_dir = "/consul/data"
|
||||
client_addr = "0.0.0.0"
|
||||
ui_config{
|
||||
enabled = true
|
||||
}
|
||||
ports = {
|
||||
grpc = -1
|
||||
https = -1
|
||||
dns = -1
|
||||
grpc_tls = -1
|
||||
serf_wan = -1
|
||||
}
|
||||
peering {
|
||||
enabled = false
|
||||
}
|
||||
connect {
|
||||
enabled = false
|
||||
}
|
||||
server = true
|
||||
bootstrap_expect=1
|
||||
acl = {
|
||||
enabled = true
|
||||
default_policy = "deny"
|
||||
enable_token_persistence = true
|
||||
tokens {
|
||||
initial_management = "$uuid"
|
||||
agent = "$uuid"
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
cat <<EOF > /opt/consul/docker-compose.yaml
|
||||
version: '3.6'
|
||||
services:
|
||||
consul:
|
||||
image: hashicorp/consul:1.16
|
||||
hostname: consul
|
||||
container_name: consul
|
||||
restart: always
|
||||
volumes:
|
||||
- /opt/consul/data:/consul/data
|
||||
- /opt/consul/config:/consul/config
|
||||
- /usr/share/zoneinfo/PRC:/etc/localtime
|
||||
ports:
|
||||
- "8500:8500"
|
||||
command: "agent"
|
||||
networks:
|
||||
- TenSunS
|
||||
|
||||
networks:
|
||||
TenSunS:
|
||||
name: TenSunS
|
||||
driver: bridge
|
||||
ipam:
|
||||
driver: default
|
||||
EOF
|
||||
|
||||
echo "请进入/opt/consul目录执行 docker-compose up -d 启动consul"
|
||||
echo "consul的管理员token是: $uuid"
|
|
@ -0,0 +1,49 @@
|
|||
#!/bin/bash
|
||||
tsspath="/opt/tensuns"
|
||||
mkdir -p $tsspath
|
||||
|
||||
cat <<EOF > $tsspath/docker-compose.yaml
|
||||
version: '3.6'
|
||||
services:
|
||||
flask-consul:
|
||||
image: swr.cn-south-1.myhuaweicloud.com/starsl.cn/flask-consul:latest
|
||||
container_name: flask-consul
|
||||
hostname: flask-consul
|
||||
restart: always
|
||||
volumes:
|
||||
- /usr/share/zoneinfo/PRC:/etc/localtime
|
||||
environment:
|
||||
consul_token: xxxxx-xxxxx-xxxxx
|
||||
consul_url: http://x.x.x.x:8500/v1
|
||||
admin_passwd: xxxxxxxx
|
||||
log_level: INFO
|
||||
networks:
|
||||
- TenSunS
|
||||
|
||||
nginx-consul:
|
||||
image: swr.cn-south-1.myhuaweicloud.com/starsl.cn/nginx-consul:latest
|
||||
container_name: nginx-consul
|
||||
hostname: nginx-consul
|
||||
restart: always
|
||||
ports:
|
||||
- "1026:1026"
|
||||
volumes:
|
||||
- /usr/share/zoneinfo/PRC:/etc/localtime
|
||||
depends_on:
|
||||
- flask-consul
|
||||
networks:
|
||||
- TenSunS
|
||||
|
||||
networks:
|
||||
TenSunS:
|
||||
name: TenSunS
|
||||
driver: bridge
|
||||
ipam:
|
||||
driver: default
|
||||
EOF
|
||||
|
||||
|
||||
echo -e "\n编辑:$tsspath/docker-compose.yaml,修改3个环境变量:\n\033[31;1mconsul_token\033[0m:consul的登录token(安装consul时生成的UUID)\n\033[31;1mconsul_url\033[0m:consul的URL(http开头,/v1要保留)\n\033[31;1madmin_passwd\033[0m:登录后羿运维平台admin用户的密码\n"
|
||||
echo "启动:cd $tsspath && docker-compose up -d"
|
||||
echo -e "\n请使用浏览器访问 http://{你的IP}:1026 并登录使用\n"
|
||||
echo -e "\033[31;1mhttp://`ip route get 1.2.3.4 | awk '{print $NF}'|head -1`:1026\033[0m\n"
|
|
@ -0,0 +1,247 @@
|
|||
#!/bin/bash
|
||||
uuid=`uuidgen`
|
||||
passwd="tensuns"
|
||||
read -p "请设置登录后羿运维平台的admin密码:" passwd
|
||||
|
||||
cat <<EOF > 1.consul-deploy.yaml
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: tensuns
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: consul-config
|
||||
namespace: tensuns
|
||||
labels:
|
||||
app: consul
|
||||
data:
|
||||
consul.hcl: |+
|
||||
log_level = "error"
|
||||
data_dir = "/consul/data"
|
||||
client_addr = "0.0.0.0"
|
||||
ui_config {
|
||||
enabled = true
|
||||
}
|
||||
ports = {
|
||||
grpc = -1
|
||||
https = -1
|
||||
dns = -1
|
||||
grpc_tls = -1
|
||||
serf_wan = -1
|
||||
}
|
||||
peering {
|
||||
enabled = false
|
||||
}
|
||||
connect {
|
||||
enabled = false
|
||||
}
|
||||
acl = {
|
||||
enabled = true
|
||||
default_policy = "deny"
|
||||
enable_token_persistence = true
|
||||
tokens {
|
||||
initial_management = "$uuid"
|
||||
agent = "$uuid"
|
||||
}
|
||||
}
|
||||
server = true
|
||||
bootstrap_expect = 1
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: consul
|
||||
namespace: tensuns
|
||||
labels:
|
||||
app: consul
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: consul
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: consul
|
||||
spec:
|
||||
volumes:
|
||||
- name: consul-config
|
||||
configMap:
|
||||
name: consul-config
|
||||
containers:
|
||||
- name: consul
|
||||
image: hashicorp/consul:1.16
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8500
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: TZ
|
||||
value: Asia/Shanghai
|
||||
volumeMounts:
|
||||
- name: consul-data
|
||||
mountPath: /consul/data
|
||||
- name: consul-config
|
||||
mountPath: /consul/config/consul.hcl
|
||||
subPath: consul.hcl
|
||||
imagePullPolicy: IfNotPresent
|
||||
restartPolicy: Always
|
||||
volumeClaimTemplates:
|
||||
- kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: consul-data
|
||||
namespace: tensuns
|
||||
annotations:
|
||||
everest.io/disk-volume-type: SAS
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
storageClassName: csi-disk
|
||||
volumeMode: Filesystem
|
||||
serviceName: consul
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: consul
|
||||
namespace: tensuns
|
||||
labels:
|
||||
app: consul
|
||||
spec:
|
||||
ports:
|
||||
- name: http
|
||||
protocol: TCP
|
||||
port: 8500
|
||||
targetPort: 8500
|
||||
selector:
|
||||
app: consul
|
||||
type: ClusterIP
|
||||
EOF
|
||||
|
||||
cat <<EOF > 2.tensuns-deploy.yaml
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: tensuns
|
||||
---
|
||||
kind: Deployment
|
||||
apiVersion: apps/v1
|
||||
metadata:
|
||||
name: flask-consul
|
||||
namespace: tensuns
|
||||
labels:
|
||||
app: flask-consul
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: flask-consul
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: flask-consul
|
||||
spec:
|
||||
initContainers:
|
||||
- name: wait-for-consul
|
||||
image: busybox
|
||||
command:
|
||||
- sh
|
||||
- '-c'
|
||||
- >-
|
||||
for i in \$(seq 1 60); do nc -z -w3 consul 8500 && exit 0 ||
|
||||
sleep 5; done; exit 1
|
||||
imagePullPolicy: IfNotPresent
|
||||
containers:
|
||||
- name: flask-consul
|
||||
image: 'swr.cn-south-1.myhuaweicloud.com/starsl.cn/flask-consul:latest'
|
||||
ports:
|
||||
- name: http-2026
|
||||
containerPort: 2026
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: admin_passwd
|
||||
value: '$passwd'
|
||||
- name: consul_token
|
||||
value: '$uuid'
|
||||
- name: consul_url
|
||||
value: 'http://consul:8500/v1'
|
||||
- name: log_level
|
||||
value: INFO
|
||||
- name: TZ
|
||||
value: Asia/Shanghai
|
||||
imagePullPolicy: Always
|
||||
restartPolicy: Always
|
||||
---
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: flask-consul
|
||||
namespace: tensuns
|
||||
labels:
|
||||
app: flask-consul
|
||||
spec:
|
||||
ports:
|
||||
- name: http-2026
|
||||
protocol: TCP
|
||||
port: 2026
|
||||
targetPort: 2026
|
||||
selector:
|
||||
app: flask-consul
|
||||
type: ClusterIP
|
||||
---
|
||||
kind: Deployment
|
||||
apiVersion: apps/v1
|
||||
metadata:
|
||||
name: nginx-consul
|
||||
namespace: tensuns
|
||||
labels:
|
||||
app: nginx-consul
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: nginx-consul
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nginx-consul
|
||||
spec:
|
||||
containers:
|
||||
- name: nginx-consul
|
||||
image: 'swr.cn-south-1.myhuaweicloud.com/starsl.cn/nginx-consul:latest'
|
||||
ports:
|
||||
- name: http-1026
|
||||
containerPort: 1026
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: TZ
|
||||
value: Asia/Shanghai
|
||||
imagePullPolicy: Always
|
||||
restartPolicy: Always
|
||||
---
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: tensuns
|
||||
namespace: tensuns
|
||||
labels:
|
||||
app: tensuns
|
||||
spec:
|
||||
ports:
|
||||
- name: nginx-consul
|
||||
protocol: TCP
|
||||
port: 1026
|
||||
targetPort: 1026
|
||||
nodePort: 31026
|
||||
selector:
|
||||
app: nginx-consul
|
||||
type: NodePort
|
||||
externalTrafficPolicy: Cluster
|
||||
EOF
|
108
k8s-deploy.yaml
108
k8s-deploy.yaml
|
@ -1,108 +0,0 @@
|
|||
kind: Deployment
|
||||
apiVersion: apps/v1
|
||||
metadata:
|
||||
name: flask-consul
|
||||
labels:
|
||||
app: flask-consul
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: flask-consul
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: flask-consul
|
||||
spec:
|
||||
initContainers:
|
||||
- name: wait-for-consul
|
||||
image: busybox
|
||||
command:
|
||||
- sh
|
||||
- '-c'
|
||||
- >-
|
||||
for i in $(seq 1 60); do nc -z -w3 x.x.x.x 8500 && exit 0 ||
|
||||
sleep 5; done; exit 1
|
||||
imagePullPolicy: IfNotPresent
|
||||
containers:
|
||||
- name: flask-consul
|
||||
image: 'swr.cn-south-1.myhuaweicloud.com/starsl.cn/flask-consul:latest'
|
||||
ports:
|
||||
- name: http-2026
|
||||
containerPort: 2026
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: admin_passwd
|
||||
value: 'xxxxxxxx'
|
||||
- name: consul_token
|
||||
value: xxxx-xxxx-xxxx-xxxx
|
||||
- name: consul_url
|
||||
value: 'http://x.x.x.x:8500/v1'
|
||||
- name: log_level
|
||||
value: INFO
|
||||
- name: TZ
|
||||
value: Asia/Shanghai
|
||||
imagePullPolicy: Always
|
||||
restartPolicy: Always
|
||||
---
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: flask-consul
|
||||
labels:
|
||||
app: flask-consul
|
||||
spec:
|
||||
ports:
|
||||
- name: http-2026
|
||||
protocol: TCP
|
||||
port: 2026
|
||||
targetPort: 2026
|
||||
selector:
|
||||
app: flask-consul
|
||||
type: ClusterIP
|
||||
---
|
||||
kind: Deployment
|
||||
apiVersion: apps/v1
|
||||
metadata:
|
||||
name: nginx-consul
|
||||
labels:
|
||||
app: nginx-consul
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: nginx-consul
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nginx-consul
|
||||
spec:
|
||||
containers:
|
||||
- name: nginx-consul
|
||||
image: 'swr.cn-south-1.myhuaweicloud.com/starsl.cn/nginx-consul:latest'
|
||||
ports:
|
||||
- name: http-1026
|
||||
containerPort: 1026
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: TZ
|
||||
value: Asia/Shanghai
|
||||
imagePullPolicy: Always
|
||||
restartPolicy: Always
|
||||
---
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: consulmanager
|
||||
labels:
|
||||
service: consulmanager
|
||||
spec:
|
||||
ports:
|
||||
- name: nginx-consul
|
||||
protocol: TCP
|
||||
port: 1026
|
||||
targetPort: 1026
|
||||
nodePort: 31026
|
||||
selector:
|
||||
app: nginx-consul
|
||||
type: NodePort
|
Loading…
Reference in New Issue