Update tech_docs/minikube_setup_debian.md
This commit is contained in:
@@ -1,3 +1,131 @@
|
||||
Certainly! Let's deploy a more useful sample application—a simple web application that uses Nginx as a web server and serves a static HTML page. This example will cover the creation of a deployment, a service, and accessing the application.
|
||||
|
||||
### Step 1: Create a Deployment YAML File
|
||||
|
||||
1. Create a file named `nginx-deployment.yaml` with the following content:
|
||||
|
||||
```yaml
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: nginx-deployment
|
||||
spec:
|
||||
replicas: 3
|
||||
selector:
|
||||
matchLabels:
|
||||
app: nginx
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nginx
|
||||
spec:
|
||||
containers:
|
||||
- name: nginx
|
||||
image: nginx:1.21.6
|
||||
ports:
|
||||
- containerPort: 80
|
||||
volumeMounts:
|
||||
- name: html
|
||||
mountPath: /usr/share/nginx/html
|
||||
volumes:
|
||||
- name: html
|
||||
configMap:
|
||||
name: html-configmap
|
||||
```
|
||||
|
||||
### Step 2: Create a ConfigMap for the HTML Page
|
||||
|
||||
2. Create a file named `html-configmap.yaml` with the following content:
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: html-configmap
|
||||
data:
|
||||
index.html: |
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Welcome to Nginx</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Welcome to your Nginx application!</h1>
|
||||
<p>Deployed with Minikube on Kubernetes.</p>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
### Step 3: Create a Service YAML File
|
||||
|
||||
3. Create a file named `nginx-service.yaml` with the following content:
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: nginx-service
|
||||
spec:
|
||||
type: NodePort
|
||||
selector:
|
||||
app: nginx
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 80
|
||||
targetPort: 80
|
||||
nodePort: 30007
|
||||
```
|
||||
|
||||
### Step 4: Deploy the Application
|
||||
|
||||
4. Apply the ConfigMap:
|
||||
|
||||
```sh
|
||||
kubectl apply -f html-configmap.yaml
|
||||
```
|
||||
|
||||
5. Apply the Deployment:
|
||||
|
||||
```sh
|
||||
kubectl apply -f nginx-deployment.yaml
|
||||
```
|
||||
|
||||
6. Apply the Service:
|
||||
|
||||
```sh
|
||||
kubectl apply -f nginx-service.yaml
|
||||
```
|
||||
|
||||
### Step 5: Access the Application
|
||||
|
||||
1. Check the status of the pods to ensure they are running:
|
||||
|
||||
```sh
|
||||
kubectl get pods
|
||||
```
|
||||
|
||||
2. Get the URL for the Nginx service:
|
||||
|
||||
```sh
|
||||
minikube service nginx-service --url
|
||||
```
|
||||
|
||||
3. Open the URL in your web browser. You should see the static HTML page served by Nginx.
|
||||
|
||||
### Step 6: Clean Up
|
||||
|
||||
1. To delete the resources, you can run:
|
||||
|
||||
```sh
|
||||
kubectl delete -f nginx-service.yaml
|
||||
kubectl delete -f nginx-deployment.yaml
|
||||
kubectl delete -f html-configmap.yaml
|
||||
```
|
||||
|
||||
This setup will provide you with a more useful and practical application deployment scenario, giving you a better understanding of how to work with Kubernetes deployments, services, and ConfigMaps.
|
||||
|
||||
---
|
||||
|
||||
Here's a step-by-step guide to set up Minikube on your Debian 12 system for a complete Kubernetes learning lab:
|
||||
|
||||
### Prerequisites
|
||||
|
||||
Reference in New Issue
Block a user