At first create namespace
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/namespace.yaml
Then install metal lb
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/metallb.yaml
Check the available IP for loadbalancer of your virtual subnet
Then set the IP in the below configmap and apply
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- 172.16.1.230-172.16.1.230
kubectl apply -f config.yaml
Next set up the nginx ingress controller using helm
Create a internal-ingress.yaml file for configuration
controller:
config:
use-forwarded-headers: "true"
server-tokens: "False"
service:
loadBalancerIP: 172.16.1.230
Then install using helm
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm install ingress-nginx ingress-nginx/ingress-nginx -f internal-ingress.yaml
Check the service and External IP of loadbalancer
kubectl get svc
Now create a simple deployment and ingress for nginx default page
deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
run: nginx
name: nginx-deploy
spec:
replicas: 1
selector:
matchLabels:
run: nginx
template:
metadata:
labels:
run: nginx
spec:
containers:
- image: nginx
name: nginx
kubectl apply -f deployment.yaml
create a service
kubectl expose deploy nginx-deploy --port 80
create an updated ingress.yaml (kubernetes updated ingress)
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/configuration-snippet: |
more_set_headers "X-Frame-Options: Deny";
more_set_headers "X-Xss-Protection: 1; mode=block";
more_set_headers "X-Content-Type-Options: nosniff";
name: nginx-deploy
namespace: default
spec:
rules:
- host: nginx.devops.com
http:
paths:
- backend:
service:
name: nginx-deploy
port:
number: 80
path: /
pathType: ImplementationSpecific
Then apply the yaml files
kubectl apply -f ingress.yaml
Go to /etc/hosts and add the loadbalancer ip and site address
sudo nano /etc/hosts
172.16.1.230 nginx.devops.com
Save it and check
curl http://nginx.devops.com
You can see the nginx welcome page
Video Tutorial
This comment has been removed by the author.
ReplyDeleteWeighty Metal investigated the serious side of the real world, life past individual cravings, mortality, and was vigorously affected by crafted by mysterious journalists like Dennis Wheatley.
ReplyDeleteprecious metals ira