解決策を見つけたと思います(デプロイメントとサービスを使用)。
私のデプロイでは、1つのポッド内で2つのコンテナー(webapp + redis)を使用しました。これは、アクティブなredisインスタンスなしでWebアプリを実行することは意味がなく、さらにアプリケーションの起動時にredisに接続するためです。私はこの推論が間違っている可能性があるので、他のことを考えたら遠慮なく訂正してください。
これが私の展開です:
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
の出力からポートを抽出します 。