NeevAI SuperCloud
LoginSIGN UP
  • NeevCloud Account
    • Getting Started with Neev account
      • Create & activate NeevCloud account
        • NeevCloud Account Signup
          • Email Verification
          • KYC Validation
          • Enter Billing Profile
          • Payment Validation
        • Customer Validation Process for Indian Customers
          • If you are the primary contact of the Organization
          • If you are not a Primary Contact in NeevCloud Account
      • Customer Validation Process FAQs
  • NeevCloud Products
    • Dashboard
    • Computes
      • Compute Flavors
      • Getting Started Launch VMs
        • Launch Alma Linux
        • Launch Window Server
        • Launch Instance using the Password
      • Launch instance by 1-click Marketplace platform
        • Create a Tally instance from the Neevcloud Marketplace
        • Create a PostgreSQL instance from Neevcloud Marketplace
        • Create a Nginx instance from Neevcloud Marketplace
        • Create a MariaDB instance from Neevcloud Marketplace
        • Create a Docker instance from Neevcloud Marketplace
        • Create a Nodejs Instance from Neevcloud Marketplace
        • Create a MongoDB Instance from the Neevcloud Marketplace
        • Create a CloudPanel Instance from the Neevcloud Marketplace
        • Create a GitLab Instance from the Neevcloud Marketplace
        • Create a Ubuntu RDP Instance from the Neevcloud Marketplace
        • Create a Clickhouse Instance from the Neevcloud Marketplace
        • Create an OpenLiteSpeed WordPress Instance from the NeevCloud Marketplace
        • Create a FortiGate instance from the Neevcloud Marketplace
      • Manage Cloud Instance
        • Overview
        • Volumes
        • Snapshots
        • Networking
        • Security Group
          • Add Rules to the Security group
        • Rescale
        • Pricing
      • Default username of operating systems
      • Volume-based instances and image-based instances.
      • How to Delete the Instance
    • GPU
      • Deploy GPU Instance with Tesla T4
    • Networking
      • Network
        • Create a Network
        • Create Network With Private IP
      • LoadBalancer
        • Configure Load Balancing
      • Floating IPs
        • Create Floating IPs
        • Assign Floating IPs
      • Routers
        • Create Router
      • Security Groups
        • Add Security Group
        • Allow SSH Port to Specific IP Address
        • Allow ICMP for ping
        • Allow RDP Port to Specific IP Address
      • Subnets
        • Create Subnets
    • Volumes
      • Create a volume
      • Delete a volume
      • Attach Volume to Instance
      • Extend Instance Volume Size
      • To create a server using volume
    • Backups
      • Here's a guide on how to create a backup.
    • Snapshots
      • Create snapshosts
      • Create an Instance using Snapshot
    • Storage
      • Object storage
        • Create Bucket
        • Service URLs for NeevCloud S3
      • Neevcloud S3 integration
        • Connect Acronis Backup Gateway With Neevcloud Storage
        • Connect Veeam Backup Gateway With Neevcloud Storage
        • Connect MSP360 Backup With Neevcloud Storage
        • Connect Vembu Backup with Neevcloud storage
        • Connect Ahsay cloud backup suite(ACBS) with NeevCloud Storage
        • Connect ARQ Backup Solution with NeevCloud Storage
        • Backup your WordPress Site to Neevcloud s3 storage with using Updraft plugin
        • Connect Bucket with S3 Client
        • Connect Bucket with Cyberduck
        • Connect S3 storage to CPanel
        • Connect S3 Drive to NeevCloud S3 Bucket
        • Mount S3 Bucket to Linux operating system
        • How To Mount NeevCloud S3 Bucket as a Window Drive
      • S3 data migrations
        • Migrate from AWS s3 storage to NeevCloud s3 storage
        • Migrate from Wasabi s3 storage to NeevCloud s3 storage
    • Kubernetes
      • Launch Kubernetes Cluster
    • Financial Information
      • Add Fund
      • Bill History
      • Billing Address
      • How Does NeevCloud Billing Works
    • Access Details
      • SSH KEY
        • Generate SSH_KEY
      • Application Credentials
      • S3/EC2 Credentials
        • Create S3/EC2 Credentials
    • Abuse Complaints
      • What is Phishing?
    • Support
    • Security
  • NeevCloud Guide
    • NeevCloud KnowledgeBase
      • Set up LEMP (Linux, Nginx, MySQL, PHP) in Ubuntu Linux
      • Set up LAMP (Linux, Apache, MySQL, PHP) in Ubuntu Linux
      • Set up WordPress in Linux instance
      • Set up Plesk in Ubuntu
      • Set up Cpanel in Linux Instance
      • Set up Grafana
        • Install Grafana and Prometheus on Ubuntu 22.04
      • Set up a MongoDB Cluster using 3 Linux Instances
        • MongoDB Cluster with 3 Linux Instances
      • Setup Ansible Linux Instance and Application deployment on Instances
        • Deployment Application on Instances
      • Install Node.js & NPM on Linux
        • Installation of Node.js and NPM in Alma Linux
      • How to use SFTP for Uploading & Downloading files
      • Two-factor Authentication
      • How to use PuTTY for SSH key-based authentication
      • How To Create VPC on NeevCloud
      • How to Install Nginx on Ubuntu 22.04
      • How To Install Apache on Ubuntu 22.04
      • How To Install MySQL on Ubuntu 22.04
        • Mysql database backup and restore by mysqldump
      • How To Install MariaDB on Ubuntu 22.04
      • How To Install PostgreSQL on Ubuntu 22.04
      • How To Install MongoDB on Ubuntu 22.04
      • How To Install phpMyAdmin on Ubuntu 22.04
      • How To Open Port on Linux
      • How to Install Metabase on Ubuntu 22.04
      • How to transfer data from a Windows server to a NeevCloud bucket using Rclone
      • How to Integrate QNAP NAS storage and Backup to Neevcloud
      • How to Install Remote Desktop (xrdp) on Ubuntu.
      • Setup MLflow in Neevcloud Instance
      • Docker
        • Docker Installation in Ubuntu/Debian
        • Some Best practices for using Docker in application development include:
          • Create a Docker File and using Docker file Build Images
          • Docker Container
          • Docker-Compose
      • Acronis Backup Gateway With Neevcloud
    • Kubernetes
      • Deploy Nginx Service in Kubernetes
      • Deploy Lamp in Kubernetes with using Helm.
      • Deploy WordPress in Kubernetes.
      • Deploy Argocd in Kubernetes
      • Deploy Jenkins in the Kubernetes cluster
    • Troubleshoot
      • How to Access Instances
        • Access Linux instance
        • Access with Password Authentication
        • Access Windows Instance
        • Change the RDP Port and access the windows server
      • How to change the SSH Port
      • Troubleshooting Steps If your Instance is not accessible
      • How to Monitor Server Load on a Windows Cloud Instance
      • Why cloud instance is Out Of disk space
      • High Processor Load on your cloud instance
      • Steps If your Website URL is down
      • Best Practices After Reboot.
      • Reset the root password.
    • Use case
      • High-Level Architecture with Load Balancer and Jump Server in a VPC Setup
    • FAQ
      • Setup Zabbix app
      • How to change the instance Password
      • How to Access a Server Using a Static IP Address
      • What is the billing process for NeevCloud?
      • What payment methods are accepted by NeevCloud?
      • What happens if I miss a payment?
      • What is YAML
      • How can I get support for billing-related issues?
      • Can I contact NeevCloud's technical support team?
      • How to raise the ticket in the NeevCloud
      • Where can I find additional information on pricing and billing?
      • What are the terms and conditions for using Neevcloud services
Powered by GitBook
On this page
  • WordPress in Kubernetes
  • Prerequisite
  • Accessing the Kubernetes Master Node
  • Create WordPress Directory
  • WordPress Deployment YAML (wordpress-deployment.yaml):
  • MySQL Deployment YAML (mysql-deployment.yaml):
  • PersistentVolumeClaim YAML (persistent-volume-claim.yaml):
  • Apply the YAML file to create the WordPress
  1. NeevCloud Guide
  2. Kubernetes

Deploy WordPress in Kubernetes.

PreviousDeploy Lamp in Kubernetes with using Helm.NextDeploy Argocd in Kubernetes

Last updated 6 months ago

Deploying WordPress on Kubernetes requires creating several resources, including Deployments, Services, Persistent-Volume-Claims, and MySQL database.

WordPress in Kubernetes

Prerequisite

You have to set the Kubernetes cluster to follow these

Accessing the Kubernetes Master Node

To access the master node in a Kubernetes cluster, follow these :

Open a terminal session.

Use the SSH protocol to connect:

ssh -i access_keuser@master-node-address

Replace user with your username and master-node-address with the IP address or hostname of the master node.

Enter your password or authenticate with your SSH key when prompted.

Once connected, you can perform administrative tasks on the Kubernetes master node.

Create WordPress Directory

To initiate the process of setting up WordPress, begin by creating a directory for WordPress files:

  1. Navigate to the Kubernetes Master node where you want to store your WordPress files.

  2. Run the following command to create a new directory in the Kubernetes master node:

mkdir wordpress

This command creates a new folder named WordPress where you can proceed with the installation and configuration of your WordPress site.

Then navigate to the WordPress directory:

cd wordpress

To set up a web application using Kubernetes, you'll need to deploy both MySQL and WordPress. This setup involves creating three primary configuration files: a deployment file for MySQL, a PersistentVolumeClaim (PVC) for ensuring the database storage persists, and a deployment file for WordPress. Each component plays a critical role in ensuring your application is resilient, scalable, and has reliable storage.

WordPress Deployment YAML (wordpress-deployment.yaml):

vi wordpress-deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: wordpress
spec:
  replicas: 1
  selector:
    matchLabels:
      app: wordpress
  template:
    metadata:
      labels:
        app: wordpress
    spec:
      containers:
      - name: wordpress
        image: wordpress:latest
        ports:
        - containerPort: 80
        env:
        - name: WORDPRESS_DB_HOST
          value: mysql-service
        - name: WORDPRESS_DB_USER
          value: root
        - name: WORDPRESS_DB_PASSWORD
          value: Password123@#@!
        - name: WORDPRESS_DB_NAME
          value: wordpress_db
---
apiVersion: v1
kind: Service
metadata:
  name: wordpress
spec:
  selector:
    app: wordpress
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: LoadBalancer

Ensure you replace placeholder values like your_db_user, your_db_password, your_db_name, and your_mysql_root_password with appropriate values for your setup.


Note: To access WordPress in the browser, we are utilizing a LoadBalancer service type.

MySQL Deployment YAML (mysql-deployment.yaml):

vi mysql-deployment.yaml
apiVersion: v1
kind: Service
metadata:
  name: mysql-service
spec:
  selector:
    app: mysql
  ports:
    - protocol: TCP
      port: 3306
      targetPort: 3306
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:latest
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: Password123@#@!
        - name: MYSQL_DATABASE
          value: wordpress_db

Ensure you replace placeholder values like your_db_user, your_db_password, your_db_name, and your_mysql_root_password with appropriate values for your setup.

PersistentVolumeClaim YAML (persistent-volume-claim.yaml):

vi persistent-volume-claim.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: wordpress-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

Apply the YAML file to create the WordPress

You can apply these YAML files to your Kubernetes cluster using the kubectl apply -f command. For example:

kubectl apply -f wordpress-deployment.yaml 
kubectl apply -f mysql-deployment.yaml 
kubectl apply -f persistent-volume-claim.yaml

Ensure you replace placeholder values like your_db_user, your_db_password, your_db_name, and your_mysql_root_password with appropriate values for your setup.

This configuration sets up WordPress with a MySQL database backend and a LoadBalancer service for external access to WordPress. Adjustments may be necessary depending on your specific requirements and environment.

To find your external IP address, open your web browser.

Open your terminal or command prompt and access the Kubernetes master node by and .

links
LINK
SSH
kubeconfig-file
http://external_ipexternal_ip