# Deploy Lamp in Kubernetes with using Helm.

## Lamp deployment in Kubernetes with using Helm chart.

## Prerequisites

You have to set the Kubernetes cluster to follow these [links](https://docs.neevcloud.com/neevcloud-products/kubernetes/launch-kubernetes-cluster).

### Access the Kubernetes Master Node

To access the master node in a Kubernetes cluster, follow these [LINK](https://docs.neevcloud.com/neevcloud-products/kubernetes/launch-kubernetes-cluster#to-ssh-into-the-master-node)

Open a terminal session.

Use the SSH protocol to connect:

```
ssh -i access_keuser@master-node-address
```

{% hint style="info" %}
Replace `user` with your username and `master-node-address` with the IP address or hostname of the master node.
{% endhint %}

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

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

To deploy a **LAMP stack** on Kubernetes with efficiency, we leverage **Helm charts**. Helm packages applications alongside their dependencies such as containers and services into a single deployment unit. Commence by creating a new directory specifically for your Helm chart

## **Create a new directory for your Helm chart**:

```
mkdir my-lamp-chart 
cd my-lamp-chart
```

### **Initialize the Helm chart**:

```
helm create lamp-chart
```

```
cd lamp-chart && ls
```

Run the cd command to navigate to the lamp-chart directory.

<figure><img src="/files/KVkn6645PL6dCJqH01Cp" alt=""><figcaption></figcaption></figure>

### **Edit the values.yaml file**:

```
vi values.yaml
```

### **Add image of httpd**

A tag identifies a specific version of an image.

**tag: latest**

Service types are used to specify the type of service that should be created for a deployment, service types determine how the service is exposed and accessed within a Kubernetes cluster

**type: LoadBalancer**

<figure><img src="/files/IW5fKCBQ40al1Jq0Nttp" alt=""><figcaption></figcaption></figure>

### **Edit the templates directory:**

```
cd template
```

```
vi service.yaml
```

The target port is a crucial element in service configuration. It ensures correct traffic routing between the service and the container. You can specify the port that the container listens on and map it to a service port. Use it carefully to maintain proper communication and functionality.

### **Add the target port: 80**

<figure><img src="/files/ULJ7jNEJh6u8VDrkSoT1" alt=""><figcaption></figcaption></figure>

### Rum Helm Install&#x20;

Now back to my-lamp-chart directory run these command

```
helm install my-lamp-release ./lamp-chart
```

<figure><img src="/files/i9oQLDZjIyla7FA3RSXf" alt=""><figcaption></figcaption></figure>

**Verify the installation**:

```
kubectl get all
```

<figure><img src="/files/5T7vy86spqcR5YaFKP4U" alt=""><figcaption></figcaption></figure>

When you create a YAML file for a LoadBalancer, it will automatically configure a new load balancer in the NeevCloud Panel. To verify the load balancer navigate to the neevcloud dashboard and select the networking section to click the Load Balancer.

<figure><img src="/files/NkMQjQkNk08JdKEou0W7" alt=""><figcaption></figcaption></figure>

### Added Pools Overview

This section provides an overview of the pools that have been added.

<figure><img src="/files/bf1kQbpj0vYC1xLRQDaC" alt=""><figcaption></figcaption></figure>

Open your browser and verify the service is running.

\*\*<http://External\\_IP**&#x20>;

<figure><img src="/files/Eiv0kUIDKPimeUfiOFaO" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.neevcloud.com/neevcloud-guide/kubernetes/deploy-lamp-in-kubernetes-with-using-helm..md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
