Initial commit: k3s deployment configurations
This commit is contained in:
131
k3s/k3s-demo.yaml
Normal file
131
k3s/k3s-demo.yaml
Normal file
@@ -0,0 +1,131 @@
|
||||
# 1. 创建一个独立的命名空间,保持环境整洁
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: demo-space
|
||||
---
|
||||
# 2. 定义网站内容 (ConfigMap) - 我们直接把 HTML 写在配置里
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: html-config
|
||||
namespace: demo-space
|
||||
data:
|
||||
index-blue.html: |
|
||||
<html><body style="background-color:#0000; text-align:center; padding-top:50px;">
|
||||
<h1 style="color:#006064;">我是网站 1 (蓝色)</h1>
|
||||
<p>部署在 K3s 集群中</p>
|
||||
</body></html>
|
||||
index-green.html: |
|
||||
<html><body style="background-color:#4a148c; text-align:center; padding-top:50px;">
|
||||
<h1 style="color:#1b5e20;">我是网站 2 (绿色)</h1>
|
||||
<p>我有 3 个副本,正在为您提供高可用服务!</p>
|
||||
</body></html>
|
||||
---
|
||||
# 3. 部署网站 1 (Blue)
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: web-blue
|
||||
namespace: demo-space
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: site-blue
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: site-blue
|
||||
spec:
|
||||
containers:
|
||||
- name: nginx
|
||||
image: nginx:alpine
|
||||
volumeMounts:
|
||||
- name: html-volume
|
||||
mountPath: /usr/share/nginx/html/index.html
|
||||
subPath: index-blue.html
|
||||
volumes:
|
||||
- name: html-volume
|
||||
configMap:
|
||||
name: html-config
|
||||
---
|
||||
# 4. 部署网站 2 (Green) - 注意这里 replicas 是 3
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: web-green
|
||||
namespace: demo-space
|
||||
spec:
|
||||
replicas: 3
|
||||
selector:
|
||||
matchLabels:
|
||||
app: site-green
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: site-green
|
||||
spec:
|
||||
containers:
|
||||
- name: nginx
|
||||
image: nginx:alpine
|
||||
volumeMounts:
|
||||
- name: html-volume
|
||||
mountPath: /usr/share/nginx/html/index.html
|
||||
subPath: index-green.html
|
||||
volumes:
|
||||
- name: html-volume
|
||||
configMap:
|
||||
name: html-config
|
||||
---
|
||||
# 5. 定义服务 (Service) - 让集群内部能找到它们
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: service-blue
|
||||
namespace: demo-space
|
||||
spec:
|
||||
selector:
|
||||
app: site-blue
|
||||
ports:
|
||||
- port: 80
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: service-green
|
||||
namespace: demo-space
|
||||
spec:
|
||||
selector:
|
||||
app: site-green
|
||||
ports:
|
||||
- port: 80
|
||||
---
|
||||
# 6. 定义路由 (Ingress) - 这就是 K3s 的“大门”
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: demo-ingress
|
||||
namespace: demo-space
|
||||
spec:
|
||||
rules:
|
||||
- host: site1.u9.net3w.com
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: service-blue
|
||||
port:
|
||||
number: 80
|
||||
- host: site2.u9.net3w.com
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: service-green
|
||||
port:
|
||||
number: 80
|
||||
Reference in New Issue
Block a user