প্রথমে আমাদের মিনিকিঊব ইন্সটল করতে হবে ।
https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/
এর পরে মিনিকিউব রান করতে হবে ।
minikube start
যদি এটা কাজ না করে তাহলে
sudo usermod -aG docker $USER && newgrp docker
minikube start --driver=docker
এর পর আমাদের minikube ডকার ইনভাইরোমেন্ট এনেবল করতে হবে ।
eval $(minikube docker-env)
এর পরে minikube এর স্ট্যাটাস দেখবে
minikube status
এর পর প্রজেক্ট ডিরেক্টরি ততে ডুকব ।
application.yaml
spring:
profiles:
active: dev
application-dev.yaml
spring:
datasource:
username: root
url: jdbc:mysql://localhost:3306/technonextpay?createDatabaseIfNotExist=true
password: 1234
jpa:
properties:
hibernate:
dialect: org.hibernate.dialect.MySQLDialect
format_sql: 'true'
hibernate:
ddl-auto: update
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
show-sql: 'true'
server:
servlet:
context-path:
application-prod.properties
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://${DB_HOST}/${DB_NAME}?useSSL=false
username: ${DB_USERNAME}
password: ${DB_PASSWORD}
hikari:
initialization-fail-timeout: 0
jpa:
database-platform: org.hibernate.dialect.MySQLDialect
generate-ddl: true
show-sql: true
hibernate:
ddl-auto: update
server:
servlet:
context-path:
db-deployment.yaml ফাইল ক্রিয়েট করতে হবে
apiVersion: apps/v1
kind: Deployment
metadata:
name: demoservice
spec:
replicas: 3
selector:
matchLabels:
app: demoservice
template:
metadata:
labels:
app: demoservice
spec:
containers:
- name: demoservice
image: bulbuldigigate/demoservice:1.0
ports:
- containerPort: 8080
env:
- name: SPRING_PROFILES_ACTIVE
value: prod
- name: DB_HOST
valueFrom:
configMapKeyRef:
name: db-config
key: host
- name: DB_NAME
valueFrom:
configMapKeyRef:
name: db-config
key: dbName
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: mysql-secrets
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-secrets
key: password
---
apiVersion: v1
kind: Service
metadata:
name: demoservice-svc
spec:
selector:
app: demoservice # Corrected selector to match the labels used in Deployment
ports:
- protocol: "TCP"
port: 8080
targetPort: 8080
type: NodePort
এর পরে app-deployment.yaml ফাইল ক্রিয়েট করতে হবে
apiVersion: apps/v1
kind: Deployment
metadata:
name: demoservice
spec:
replicas: 3
selector:
matchLabels:
app: demoservice
template:
metadata:
labels:
app: demoservice
spec:
containers:
- name: demoservice
image: bulbuldigigate/demoservice:1.0
ports:
- containerPort: 8080
env:
- name: SPRING_PROFILES_ACTIVE
value: prod
- name: DB_HOST
valueFrom:
configMapKeyRef:
name: db-config
key: host
- name: DB_NAME
valueFrom:
configMapKeyRef:
name: db-config
key: dbName
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: mysql-secrets
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-secrets
key: password
---
apiVersion: v1
kind: Service
metadata:
name: demoservice-svc
spec:
selector:
app: demoservice # Corrected selector to match the labels used in Deployment
ports:
- protocol: "TCP"
port: 8080
targetPort: 8080
type: NodePort
এখন রান করার পালা ঃ
docker build -t demoservice:1.0 .
docker tag demoservice:1.0 bulbuldigigate/demoservice:1.0
docker push bulbuldigigate/demoservice:1.0
kubectl apply -f mysql-configMap.yaml
kubectl get configmap
kubectl apply -f mysql-secrets.yaml
kubectl get secrets
kubectl apply -f db-deployment.yaml
kubectl exec -it mysql-6b4bcbfd55-lh5nc -- /bin/bash
mysql -h mysql -u root -p
show databases;
use technonextpay;
exit;
kubectl apply -f app-deployment.yaml
kubectl get deployments
kubectl get svc
kubectl get pods
kubectl logs demoservice-55dbc8f844-5gn5f
minikube ip [For getting IP]
kubectl get svc [ for getting port :: ]
minikube dashboard
0 Comments