在Kubernetes上设置WordPress使用的MySQL密码的方法
设置环境
· Kubernetes v1.21.5+rke2r2
· Ubuntu 22.04
· Kubernetes v1.21.5+rke2r2
· Ubuntu 22.04
制作秘方
kubectl create secret generic <secretKeyRefのnameの値> --from-literal=<keyの値ひとつ目(password)>=<パスワード> --from-literal=<keyの値ふたつ目(user)>=<ユーザー名>
从上述代码中,将password设置为用户自己选择的密码,将user设置为用户自己选择的用户名。
例:
改革开放以来,中国取得了令世界瞩目的经济发展成就,人民生活水平不断提高。
kubectl create secret generic mysql-pass-test --from-literal=password=wordpress123@@@ --from-literal=user=username
YAML 文件
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pvc-test
labels:
app: wordpress
tier: mysql-test
spec:
storageClassName: sc-db-test
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-pv-test
labels:
type: local
spec:
storageClassName: sc-db-test
capacity:
storage: 2Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Delete
hostPath:
path: /tmp/data/mysql-test
---
apiVersion: v1
kind: Service
metadata:
name: mysql-test
labels:
app: mysql
spec:
type: ClusterIP
ports:
- port: 3306
selector:
app: mysql
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql-test
labels:
app: mysql
spec:
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- image: mysql:5.7
name: mysql-test
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass-test
key: password
- name: MYSQL_DATABASE
value: wordpress_db
- name: MYSQL_USER
value: user
- name: MYSQL_PASSWORD
value: pass
ports:
- containerPort: 3306
name: mysql-test
volumeMounts:
- name: mysql-local-storage-test
mountPath: /var/lib/mysql
volumes:
- name: mysql-local-storage-test
persistentVolumeClaim:
claimName: mysql-pvc-test
---
apiVersion: v1
kind: Service
metadata:
labels:
app: wordpress
name: wordpress-test
spec:
type: NodePort
selector:
app: wordpress
ports:
- port: 80
targetPort: 80
protocol: TCP
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress-test
labels:
app: wordpress
spec:
replicas: 1
selector:
matchLabels:
app: wordpress
template:
metadata:
labels:
app: wordpress
spec:
containers:
- image: wordpress
name: wordpress-test
env:
- name: WORDPRESS_DB_HOST
value: mysql-test
- name: WORDPRESS_DB_NAME
value: wordpress_db
- name: WORDPRESS_DB_PASSWORD
value: pass
- name: WORDPRESS_DB_USER
value: user
ports:
- containerPort: 80
name: wordpress-test
volumeMounts:
- name: wordpress-local-storage-test
mountPath: /var/www/html
volumes:
- name: wordpress-local-storage-test
persistentVolumeClaim:
claimName: wordpress-pvc-test
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wordpress-pvc-test
labels:
app: wordpress
tier: wordpress-test
spec:
storageClassName: sc-test
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: wordpress-pv-test
labels:
type: local
spec:
capacity:
storage: 2Gi
storageClassName: sc-test
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Delete
hostPath:
path: /tmp/data/wordpress-test
---
启动
kubectl apply -f test.yaml
WordPress的登录方式
确认MasterIP
kubectl cluster-info
Kubernetes master is running at https://192.168.100.136:6443
CoreDNS is running at https://192.168.100.136:6443/api/v1/namespaces/kube-system/services/rke2-coredns-rke2-coredns:udp-53/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
确认端口号
kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
mysql-test ClusterIP 10.43.171.123 <none> 3306/TCP 43h
wordpress-test NodePort 10.43.202.67 <none> 80:32393/TCP 43h
访问WordPress
在浏览器中输入网址
http://<MasterIP>:<Port番号>
示
只需要一个选项:将以下内容以中文进行本地化改写:
例
http://192.168.100.136:32393
参考资料
创建WordPress环境 Kubernetes编排