मुझे लगता है कि मैंने एक समाधान निकाला है (एक परिनियोजन और एक सेवा का उपयोग करके)।
मेरी तैनाती के लिए, मैंने एक पॉड के भीतर दो कंटेनरों (वेबएप + रेडिस) का उपयोग किया, क्योंकि यह वेबएप को सक्रिय रेडिस इंस्टेंस के बिना चलाने के लिए समझ में नहीं आता है, और इसके अतिरिक्त यह एप्लिकेशन शुरू होने पर रेडिस से जुड़ता है। मैं इस तर्क में गलत हो सकता हूं, इसलिए अगर आप कुछ और सोचते हैं तो बेझिझक मुझे सुधारें।
यह रहा मेरा परिनियोजन:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-deployment
spec:
selector:
matchLabels:
app: my-app-deployment
template:
metadata:
labels:
app: my-app-deployment
spec:
containers:
- name: redis
image: redis:latest
ports:
- containerPort: 6379
volumeMounts:
- mountPath: /srv/www
name: redis-storage
- name: my-app
image: my-app:latest
imagePullPolicy: Never
ports:
- containerPort: 8080
volumes:
- name: redis-storage
emptyDir: {}
और यहाँ सेवा परिभाषा है:
apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
ports:
- port: 8080
protocol: TCP
type: NodePort
selector:
app: my-app-deployment
मैं इसके साथ परिनियोजन बनाता हूं:kubectl create -f deployment.yaml
फिर, मैं kubectl create -f service.yaml
. के साथ सेवा बनाता हूं मैं minikube ip
के साथ IP पढ़ता हूं और kubectl describe service my-app-service
. के आउटपुट से पोर्ट एक्सट्रेक्ट करें ।