Deploy PHP application with Redis - Kubernetes

0 votes

I need to deploy a PHP application with Redis. I have the following requirements:

  1. Single Redis Instance to store entries
  2. Replicated Redis instances for entry reads
  3. instances for frontend instances
Can somebody help me with this?
Thanks in advance!
Oct 23, 2019 in Kubernetes by Hannah
• 18,520 points
1,568 views

1 answer to this question.

0 votes

Hi, @Hannah, Follow these steps:

1. Create a Kubernetes cluster: https://www.edureka.co/blog/install-kubernetes-on-ubuntu

2. Set up the Redis master: https://www.edureka.co/community/58783/deployment-controller-single-replica-redis-master-kubernetes

3. Apply the redis master deployment

kubectl apply -f https://k8s.io/examples/application/guestbook/redis-master-deployment.yaml

4. Create Redis master service: https://www.edureka.co/community/58785/application-communication-with-the-redis-master

5. Apply the service:

kubectl apply -f https://k8s.io/examples/application/guestbook/redis-master-service.yaml

6. Create slave deployments, if needed

application/guestbook/redis-slave-deployment.yaml 

apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: redis-slave
  labels:
    app: redis
spec:
  selector:
    matchLabels:
      app: redis
      role: slave
      tier: backend
  replicas: 2
  template:
    metadata:
      labels:
        app: redis
        role: slave
        tier: backend
    spec:
      containers:
      - name: slave
        image: gcr.io/google_samples/gb-redisslave:v3
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
        env:
        - name: GET_HOSTS_FROM
          value: dns
          # Using `GET_HOSTS_FROM=dns` requires your cluster to
          # provide a dns service. As of Kubernetes 1.3, DNS is a built-in
          # service launched automatically. However, if the cluster you are using
          # does not have a built-in DNS service, you can instead
          # access an environment variable to find the master
          # service's host. To do so, comment out the 'value: dns' line above, and
          # uncomment the line below:
          # value: env
        ports:
        - containerPort: 6379

7. Deploy the application frontend

8. View the application through load balancer

kubectl get service frontend

answered Oct 23, 2019 by Eric

Related Questions In Kubernetes

+1 vote
1 answer

How to deploy a feature with zero downtime in kubernetes?

By default Deployment in Kubernetes uses RollingUpdate as a ...READ MORE

answered Jul 18, 2019 in Kubernetes by Sirajul
• 59,230 points
1,027 views
0 votes
1 answer

Kubernetes Endpoints with TTL

Follow these steps: add an annotation to each ...READ MORE

answered Aug 27, 2018 in Kubernetes by Kalgi
• 52,350 points
790 views
0 votes
2 answers

DNS does not resolve with NGINX in Kubernetes

adding to @kalgi's answer Using just the hostname ...READ MORE

answered Aug 30, 2018 in Kubernetes by Nilesh
• 7,060 points
5,659 views
0 votes
1 answer
+2 votes
1 answer
+5 votes
7 answers

Docker swarm vs kubernetes

Swarm is easy handling while kn8 is ...READ MORE

answered Aug 27, 2018 in Docker by Mahesh Ajmeria
3,983 views
0 votes
1 answer

Application communication with the Redis master

Have a look at this deployment: https://www.edureka.co/community/58783/deployment-controller-single-replica-redis-master-kubernetes You can ...READ MORE

answered Oct 23, 2019 in Kubernetes by Eric
756 views
0 votes
1 answer
webinar REGISTER FOR FREE WEBINAR X
REGISTER NOW
webinar_success Thank you for registering Join Edureka Meetup community for 100+ Free Webinars each month JOIN MEETUP GROUP