Kubernetes(K8S)快速搭建typecho個人博客
1、準(zhǔn)備工作
K8S集群環(huán)境,搭建教程參考騰訊云Lighthouse組建跨地域Kubernetes集群
K8S集群面板,搭建教程參考Kubernetes集群管理面板的安裝及使用 - 青陽のblog-一個計算機愛好者的個人博客 (hipyt.cn)
注意
如果沒有集群或者服務(wù)器不夠可以通過傳送門新購。
騰訊云輕量應(yīng)用服務(wù)器購買地址:傳送門
2、部署說明
說明:本文的教程是基于Kubernetes集群的,搭建了kuboard管理面板,之后在進行搭建typecho博客的教程。
本文使用的對應(yīng)docker鏡像的地址如下:
MySQL:mysql - Official Image | Docker Hub
typecho:rehiy/typecho - Docker Image | Docker Hub
3、創(chuàng)建mysql數(shù)據(jù)庫
3.1 mysql配置文件
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: &name mysql # Deployment的標(biāo)簽,用于標(biāo)識資源為mysql應(yīng)用程序
name: *name # Deployment的名稱為mysql
namespace: default # Deployment所在的命名空間為default
spec:
replicas: 1 # Deployment副本數(shù)量為1
selector: # 標(biāo)簽選擇器,選擇包含標(biāo)簽app:mysql的資源
matchLabels:
app: *name
template: # Pod的模板,用于選擇或創(chuàng)建Pod
metadata: # Pod的元數(shù)據(jù)
labels:
app: *name
spec:
affinity: # Pod親和性設(shè)置
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchFields:
- key: metadata.name
operator: In
values:
- vm-4-13-ubuntu # 選擇節(jié)點名稱為vm-4-13-ubuntu的節(jié)點作為部署目標(biāo)
containers: # 容器定義
- name: *name # 容器的名稱為mysql
image: mysql:latest # 使用最新版的MySQL鏡像
ports: # 容器端口映射
- containerPort: 3306 # 將容器的3306端口暴露出來
env: # 環(huán)境變量設(shè)置
- name: MYSQL_ROOT_PASSWORD # MySQL的root用戶密碼
value: typecho@123
- name: MYSQL_DATABASE # MySQL數(shù)據(jù)庫名稱
value: typecho
- name: MYSQL_USER # MySQL用戶名
value: typecho
- name: MYSQL_PASSWORD # MySQL用戶密碼
value: typecho@123
volumeMounts: # 容器的卷掛載設(shè)置
- name: db # 指定卷的名稱為db
mountPath: /var/lib/mysql # 將卷掛載到容器的/var/lib/mysql路徑下
volumes: # 卷定義
- name: db # 卷的名稱為db
hostPath:
path: /var/lib/mysql # 指定主機上的路徑/var/lib/mysql作為卷的路徑
---
apiVersion: v1
kind: Service
metadata:
name: mysql # Service的名稱為mysql
namespace: default # Service所在的命名空間為default
spec:
type: ClusterIP # Service類型為ClusterIP,內(nèi)部集群使用
selector:
app: mysql
ports:
- name: db-port
protocol: TCP
port: 3306 # Service的端口號為3306
targetPort: 3306 # Service轉(zhuǎn)發(fā)流量到Pod的3306端口
3.2使用配置文件創(chuàng)建mysql服務(wù)
把上面的yaml配置修改之后復(fù)制粘貼到這里直接提交確定。
這樣就是成功搭建了mysql服務(wù),點擊進去可以看到具體信息。
4、創(chuàng)建typecho
4.1 mysql配置文件
kind: Deployment # 創(chuàng)建Deployment資源
apiVersion: apps/v1
metadata:
name: &name myblog # 定義名為myblog的標(biāo)量錨點,值為"myblog"。并將錨點引用到name字段中
namespace: default
labels:
app: *name # 將錨點引用到app標(biāo)簽的值上
spec:
selector:
matchLabels:
app: *name # 根據(jù)app標(biāo)簽選擇匹配的Pod
template:
metadata:
labels:
app: *name # 在Pod模板中使用app標(biāo)簽,并引用錨點
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchFields:
- key: metadata.name
operator: In
values:
- vm-4-13-ubuntu # 選擇節(jié)點名稱為vm-4-13-ubuntu的節(jié)點作為部署目標(biāo)
containers:
- name: typecho # 定義一個名為typecho的容器
image: rehiy/typecho # 使用rehiy/typecho鏡像
ports:
- containerPort: 80 # 容器暴露的端口號為80
- containerPort: 443 # 容器暴露的端口號為443
volumeMounts:
- name: *name # 引用錨點指定的卷名
subPath: usr # 指定掛載到容器的子路徑為usr
mountPath: /var/www/default/usr # 將卷掛載到容器的/var/www/default/usr路徑下
volumes:
- name: *name # 引用錨點指定的卷名
hostPath:
path: /srv/myblog # 指定主機上的路徑/srv/myblog作為卷的路徑
type: DirectoryOrCreate # 如果路徑不存在,則創(chuàng)建目錄
---
kind: Service # 創(chuàng)建Service資源
apiVersion: v1
metadata:
name: &name myblog # 引用錨點指定的名稱
namespace: default
labels:
app: *name # 引用錨點指定的標(biāo)簽值
spec:
selector:
app: *name # 根據(jù)app標(biāo)簽選擇匹配的Pod
ports:
- name: http # 定義名為http的端口
port: 80 # Service監(jiān)聽的端口號為80
targetPort: 80 # Service轉(zhuǎn)發(fā)流量到Pod的端口號為80
- name: https # 定義名為https的端口
port: 443 # Service監(jiān)聽的端口號為443
targetPort: 443 # Service轉(zhuǎn)發(fā)流量到Pod的端口號為443
---
kind: Ingress # 創(chuàng)建Ingress資源
apiVersion: networking.k8s.io/v1
metadata:
name: &name myblog # 引用錨點指定的名稱
namespace: default
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web,websecure # Traefik路由入口配置
spec:
rules:
- host: blog.eg.cn # 定義訪問Ingress的域名
http:
paths:
- path: / # 匹配路徑為/
pathType: Prefix # 路徑類型為前綴匹配
backend:
service:
name: *name # 引用錨點指定的Service名稱
port:
name: http # 引用錨點指定的端口名稱
tls:
- secretName: default # 使用名為default的TLS證書密鑰對,用于HTTPS訪問
4.2使用配置文件創(chuàng)建typecho博客
和創(chuàng)建mysql一樣的方式復(fù)制修改配置文件即可成功搭建。
4、測試使用
首先把域名解析到對應(yīng)的pod的ip之后,直接用域名訪問。訪問成功即創(chuàng)建博客成功,然后根據(jù)提示進行下一步安裝。
提示
這里建議選擇我標(biāo)注出來的這個。文章來源:http://www.zghlxwxcb.cn/news/detail-756411.html
5、總結(jié)
Kubernetes提供了強大的高可用性特性,它可以自動管理和調(diào)度容器實例,確保應(yīng)用程序在集群中始終可用。還可以監(jiān)控和自動修復(fù)故障的容器實例,提高博客的穩(wěn)定性和可靠性。它的彈性伸縮的特性,可以根據(jù)負載變化自動調(diào)整程序。當(dāng)博客訪問量增加時,Kubernetes可以自動擴展應(yīng)用程序的實例數(shù)以滿足需求,并在訪問量下降時自動縮減資源的使用。大家如果發(fā)現(xiàn)它別的特點功能可以和我討論!或者還有什么類似的程序大家也可以分享一下!文章來源地址http://www.zghlxwxcb.cn/news/detail-756411.html
到了這里,關(guān)于Kubernetes(K8S)快速搭建typecho個人博客的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!