一、创建名称空间
kubectl create ns prod
二、创建PV & PVC
vim local-pv1.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: local-pv-1
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
local:
path: /data
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- no1
vim local-pvc1.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: local-pvc-1
namespace: prod
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: local-storage
volumeName: local-pv-1
volumeMode: Filesystem
三、创建部署文件并部署Typecho
vim typecho-deploy.yaml
注意替换镜像地址!!! (本篇不提供)
apiVersion: apps/v1
kind: Deployment
metadata:
name: typecho-deploy
namespace: prod
spec:
selector:
matchLabels:
app: typecho-pod
template:
metadata:
namespace: prod
labels:
app: typecho-pod
spec:
containers:
- name: typecho
image: # 替换成自己的Typecho镜像地址
ports:
- containerPort: 80
volumeMounts:
- name: local-data
mountPath: /data
volumes:
- name: local-data
persistentVolumeClaim:
claimName: local-pvc-1
---
apiVersion: v1
kind: Service
metadata:
name: typecho-svc
namespace: prod
spec:
selector:
app: typecho-pod
type: NodePort
ports:
- port: 80
nodePort: 30010
targetPort: 80
[root@no1 k8s]# kubectl apply -f typecho-deploy.yaml
[root@no1 k8s]# vim typecho-deploy.yaml
[root@no1 k8s]# kubectl get deploy,svc,po -n prod
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/typecho-deploy 1/1 1 1 20m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/typecho-svc NodePort 10.211.55.201 <none> 80:30010/TCP 20m
NAME READY STATUS RESTARTS AGE
pod/typecho-deploy-96b58b4bc-xl5rm 1/1 Running 0 20m
可以看到已成功运行!访问你的IP:PORT,进行测试
填写完毕点击下一步,注意字段值的替换,如下图,可以看到已经安装成功。
访问首页,博客首页如下图所示
至此,Typecho 安装完成!
使用Handsome主题进行美化后的样式如下