feat(k8s): align install.sh with latest opsx-loki version
- cloud auto-detection (ACK/TKE/EKS/CCE/GKE/AKS/K3s/self-hosted) via node providerID, used for deployment banner and failure diagnostics - storage class resolution chain: explicit STORAGE_CLASS > default annotation > sole SC; self-hosted clusters without any SC now get a zero-dependency static local PV (hostPath DirectoryOrCreate + nodeAffinity pin + WaitForFirstConsumer + Retain), LOCAL_STORAGE auto/off/force tri-state - PVC rendered with resolved storageClassName + PVC_SIZE; image rendered into deployment via IMAGE env - rollout failure diagnostics per waiting-reason: ImagePullBackOff lists per-cloud registry suggestions, CreateContainerConfigError points to secret, PVC Pending suggests per-cloud SC - colored info/ok/warn/die helpers, /dev/urandom key fallback, completion banner with pod/node/ip, port-forward and backup hints - kubernetes/examples/: alibaba ALB + tencent qcloud (CLB health check annotations, NodePort backend) ingress templates, secret example moved here (opsx-loki layout) - README updated with env-var table and local-storage notes
This commit is contained in:
1 parent
0b16488029
commit
738498fea3
4 files changed
+367
-134
No files matched your search
@@ -0,0 +1,32 @@
|
||||
# 腾讯云 TKE 专用 Ingress 模板
|
||||
#
|
||||
# 与通用 ingress.yaml 的区别:
|
||||
# 通用用 nginx/alb class → TKE 不支持
|
||||
# TKE 用 ingressClassName: qcloud,且后端 Service 必须是 NodePort 类型
|
||||
#
|
||||
# 使用前:
|
||||
# 1) 先创建 NodePort Service:kubectl apply -f kubernetes/service-nodeport.yaml
|
||||
# 2) 把下面 host 改成你要用的域名
|
||||
# 3) kubectl apply -f kubernetes/examples/ingress-tke.yaml
|
||||
# 4) 在腾讯云控制台/DNS 把该域名解析到 CLB 的公网 IP
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: opsxsql
|
||||
namespace: opsxsql
|
||||
annotations:
|
||||
cloud.tencent.com/health-check-path: /health
|
||||
cloud.tencent.com/health-check-interval: "10"
|
||||
spec:
|
||||
ingressClassName: qcloud
|
||||
rules:
|
||||
- host: opsxsql.example.com # ← 改成你的域名
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: opsxsql-nodeport
|
||||
port:
|
||||
number: 80
|
||||
@@ -0,0 +1,23 @@
|
||||
# 可选:阿里云 ACK 用 ALB IngressClass 的模板
|
||||
# 其他云:腾讯 TKE 用 examples/ingress-tke.yaml;自建/nginx 用仓库根 kubernetes/ingress.yaml
|
||||
# 若继续走外部 WAF 回源到 Service,则不需要本文件
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: opsxsql
|
||||
namespace: opsxsql
|
||||
annotations:
|
||||
alb.ingress.kubernetes.io/healthcheck-path: /health
|
||||
spec:
|
||||
ingressClassName: alb
|
||||
rules:
|
||||
- host: opsxsql.example.com # ← 改成你的域名
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: opsxsql
|
||||
port:
|
||||
number: 80
|
||||
@@ -0,0 +1,14 @@
|
||||
# 只做模板:不要提交真实密钥。
|
||||
# 推荐直接用命令创建(避免密钥落盘到 Git;install.sh 已自动处理):
|
||||
# kubectl -n opsxsql create secret generic opsxsql-secrets \
|
||||
# --from-literal=SECRET_KEY="$(openssl rand -hex 32)" \
|
||||
# --from-literal=JWT_SECRET="$(openssl rand -hex 32)"
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: opsxsql-secrets
|
||||
namespace: opsxsql
|
||||
type: Opaque
|
||||
stringData:
|
||||
SECRET_KEY: "REPLACE_WITH_32_BYTES_HEX"
|
||||
JWT_SECRET: "REPLACE_WITH_32_BYTES_HEX"
|
||||
Reference in new issue
Block a user