华为云智能社区wp

举报
yd_220122813 发表于 2024/11/08 10:32:11 2024/11/08
【摘要】 #!/bin/bash# 安装 Helmtar -zxvf helm-v3.3.0-linux-amd64.tar.gzmv linux-amd64/helm /usr/bin# 创建 ChartMuseum 命名空间kubectl create namespace chartmuseum# 部署 ChartMuseum 的 YAML 文件cat <<EOF > chartmuseum-de...
#!/bin/bash

# 安装 Helm
tar -zxvf helm-v3.3.0-linux-amd64.tar.gz
mv linux-amd64/helm /usr/bin

# 创建 ChartMuseum 命名空间
kubectl create namespace chartmuseum

# 部署 ChartMuseum 的 YAML 文件
cat <<EOF > chartmuseum-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: chartmuseum
  namespace: chartmuseum
spec:
  replicas: 1
  selector:
    matchLabels:
      app: chartmuseum
  template:
    metadata:
      labels:
        app: chartmuseum
    spec:
      containers:
        - name: chartmuseum
          image: registry.cn-hangzhou.aliyuncs.com/starsleap/chartmuseum:latest
          ports:
            - containerPort: 8080
          volumeMounts:
            - name: chart-storage
              mountPath: /charts
          env:
            - name: STORAGE
              value: local
            - name: STORAGE_LOCAL_ROOTDIR
              value: /charts
      volumes:
        - name: chart-storage
          hostPath:
            path: /data/charts
            type: DirectoryOrCreate
EOF

cat <<EOF > chartmuseum-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: chartmuseum
  namespace: chartmuseum
spec:
  type: ClusterIP
  selector:
    app: chartmuseum
  ports:
    - protocol: TCP
      port: 8080
      targetPort: 8080
EOF

# 应用 ChartMuseum 的配置
kubectl apply -f chartmuseum-deployment.yaml
kubectl apply -f chartmuseum-service.yaml

# 解压 WordPress chart
tar -zxvf wordpress-13.0.23.tgz

# 修改 values.yaml,将命名空间改为 chartmuseum,并更改 service 类型
sed -i 's/type: LoadBalancer/type: NodePort/' wordpress/values.yaml

# 创建 WordPress 和 MariaDB 的 PV 目录及设置权限
mkdir -p /mnt/data/wordpress
chmod 777 /mnt/data/wordpress
mkdir -p /mnt/data/mariadb
chmod 777 /mnt/data/mariadb

# 创建 WordPress 和 MariaDB 的 PV YAML 文件
cat <<EOF > wordpress-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: wordpress-pv
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: ""
  hostPath:
    path: "/mnt/data/wordpress"
EOF

cat <<EOF > mariadb-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: mariadb-pv
spec:
  capacity:
    storage: 8Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: ""
  hostPath:
    path: "/mnt/data/mariadb"
EOF

# 应用 PV 的配置
kubectl apply -f wordpress-pv.yaml
kubectl apply -f mariadb-pv.yaml

# 安装 WordPress 到 chartmuseum 命名空间
helm install wordpress ./wordpress

# 获取 WordPress 服务的 NodePort 和 IP
export NODE_PORT=$(kubectl get --namespace default -o jsonpath="{.spec.ports[0].nodePort}" services wordpress)
export NODE_IP=$(kubectl get nodes --namespace default -o jsonpath="{.items[0].status.addresses[0].address}")
echo "WordPress URL: http://$NODE_IP:$NODE_PORT/"
sleep 55
kubectl port-forward --namespace default service/wordpress $(kubectl get --namespace default -o jsonpath="{.spec.ports[0].nodePort}" services wordpress):80 &
curl -L 127.0.0.1:$(kubectl get --namespace default -o jsonpath="{.spec.ports[0].nodePort}" services wordpress)/wp-admin
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。