在Kubernetes上设置WordPress使用的MySQL密码的方法

设置环境

· Kubernetes v1.21.5+rke2r2
· Ubuntu 22.04

· Kubernetes v1.21.5+rke2r2
· Ubuntu 22.04

制作秘方

kubectl create secret generic secretKeyRefnameの値> --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编排

广告
将在 10 秒后关闭
bannerAds