The Nautilus DevOps teams is planning to set up a Grafana tool to collect and analyze analytics from some applications. They are planning to deploy it on Kubernetes cluster. Below you can find more details.
1.) Create a namespace for Grafana grafana-monitoring-xfusion
.
2.) Create grafana-deployment-xfusion
deployment the namespace you created.
a. Replica counts should be 1
.
b. Container name should be grafana-container-xfusion
and use grafana/grafana:latest
image.
c. Container port should be 3000
. Set resources limits memory to 2Gi
and CPU to 1000m
, requests for memory 1Gi
and for CPU 500m
.
d. Volume mount name should be grafana-storage
. Its mountPath should be /var/lib/grafana
. Volume name should be grafana-storage
, should be emptyDir {}
.
3.) Create grafana-service-xfusion
service under the same namespace. It must be of NodePort
type, its port must be 3000
, target port must be 3000
and nodePort must be 32000
.
You can use any labels as per your choice.
Note:
The kubeclt
on jump_host
has been configured to work with kubernetes cluster.
i created the namespace, and below is yaml for deployment and service. I’m getting Imagepulloff error for pod. What i’m missing.
apiVersion: v1
kind: Service
metadata:
name: grafana-service-xfusion
labels:
app: grafana
spec:
type: NodePort
ports:
-
port: 3000
targetPort: 3000
nodePort: 32000
protocol: TCP
selector:
app: grafana
apiVersion: apps/v1
kind: Deployment
metadata:
name: grafana-deployment-xfusion
spec:
selector:
matchLabels:
app: grafana
replicas: 1
template:
metadata:
labels:
app: grafana
spec:
containers:
- name: grafana-container-xfusion
image: grafana/grafana:latest
ports:
- containerPort: 3000
resources:
requests:
memory: "1Gi"
cpu: "500m"
limits:
memory: "2Gi"
cpu: "1000m"
volumeMounts:
- name: grafana-storage
mountPath: /var/lib/grafana
volumes:
- name: grafana-storage
emptyDir: {}