Tôi nghĩ rằng tôi đã tìm ra giải pháp (sử dụng Triển khai và Dịch vụ).
Đối với việc triển khai của mình, tôi đã sử dụng hai vùng chứa (webapp + redis) trong một Pod, vì ứng dụng web không có ý nghĩa gì khi chạy mà không có phiên bản redis hoạt động và ngoài ra, nó kết nối với redis khi khởi động ứng dụng. Tôi có thể sai trong lý luận này, vì vậy hãy sửa cho tôi nếu bạn nghĩ khác.
Đây là cách triển khai của tôi:
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: {}
Và đây là định nghĩa Dịch vụ:
apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
ports:
- port: 8080
protocol: TCP
type: NodePort
selector:
app: my-app-deployment
Tôi tạo triển khai bằng:kubectl create -f deployment.yaml
Sau đó, tôi tạo dịch vụ bằng kubectl create -f service.yaml
Tôi đọc IP bằng minikube ip
và trích xuất cổng từ đầu ra của kubectl describe service my-app-service
.