- Регистрация
- 1 Мар 2015
- Сообщения
- 1,481
- Баллы
- 155
Kubernetes can feel overwhelming at first , all the YAML, pods, deployments, services... But once you deploy your first app, things start to click.
In this guide, we’ll walk through deploying a simple Nginx web server to a Kubernetes cluster, using just a few YAML files.
? What We’re Deploying
We’ll use:
Let’s create a deployment to run two replicas of the nginx container.
File: nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80
Apply it:
kubectl apply -f nginx-deployment.yaml
Check status:
kubectl get deployments
kubectl get pods
? Step 2: Expose the App with a Service
To make the app accessible, define a Service.
File: nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort
Apply it:
kubectl apply -f nginx-service.yaml
Check the port:
kubectl get svc nginx-service
minikube service nginx-service
Open http://<NODE-IP>:<NODE-PORT> in your browser.
? Bonus: Clean Up
To delete the resources:
kubectl delete -f nginx-deployment.yaml
kubectl delete -f nginx-service.yaml
? Summary
You just:
Try:
#kubernetes #devops #k8s #containers #yaml #cloudnative
In this guide, we’ll walk through deploying a simple Nginx web server to a Kubernetes cluster, using just a few YAML files.
? What We’re Deploying
We’ll use:
- A Deployment – to manage our pods
- A Service – to expose our app
- Optionally, a NodePort – to access it from a browser
Let’s create a deployment to run two replicas of the nginx container.
File: nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80
Apply it:
kubectl apply -f nginx-deployment.yaml
Check status:
kubectl get deployments
kubectl get pods
? Step 2: Expose the App with a Service
To make the app accessible, define a Service.
File: nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort
Apply it:
kubectl apply -f nginx-service.yaml
Check the port:
kubectl get svc nginx-service
? Step 3: Access the AppLook for the NodePort, e.g., 30007.
- If you're using Minikube:
minikube service nginx-service
- If you're using Docker Desktop or a cloud cluster:
Open http://<NODE-IP>:<NODE-PORT> in your browser.
? Bonus: Clean Up
To delete the resources:
kubectl delete -f nginx-deployment.yaml
kubectl delete -f nginx-service.yaml
? Summary
You just:
- Created a Kubernetes deployment for Nginx
- Exposed it using a service
- Accessed it via browser or CLI
- Learned the basics of kubectl and YAML syntax
Try:
- Replacing Nginx with your own app image
- Using ConfigMaps or Secrets for configuration
- Exploring Ingress controllers
- Scaling your deployment with kubectl scale
#kubernetes #devops #k8s #containers #yaml #cloudnative