レプリカを作成して、既存の mongodb を高可用性にしようとしています。それを実行するために、ここにリンクの説明を入力することを参照しました
以下は私のステートフルセットです
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: skeleton-mongodb
spec:
serviceName: skeleton-mongodb
replicas: 3
selector:
matchLabels:
app: skeleton-mongodb
template:
metadata:
labels:
app: skeleton-mongodb
spec:
containers:
- name: mongodb
image: mongo:4
resources:
requests:
memory: 250Mi
cpu: 100m
limits:
memory: 500Mi
ports:
- containerPort: 27017
name: mongo
args:
- "--bind_ip_all"
- "--replSet"
- rs0
volumeMounts:
- name: skeleton-mongodb-data
mountPath: /data/db
- name: skeleton-mongodb-init
mountPath: /docker-entrypoint-initdb.d
env:
- name: MONGO_INITDB_ROOT_USERNAME
valueFrom:
configMapKeyRef:
name: skeleton
key: mongo_root-username
- name: MONGO_INITDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: skeleton
key: mongodb_root-password
- name: MONGO_INITDB_DATABASE
valueFrom:
configMapKeyRef:
name: skeleton
key: mongo_db
- name: MONGO_USERNAME
valueFrom:
configMapKeyRef:
name: skeleton
key: mongo_username
- name: MONGO_USER_PASSWORD
valueFrom:
secretKeyRef:
name: skeleton
key: mongodb_user-password
- name: mongo-sidecar
image: cvallance/mongo-k8s-sidecar
env:
- name: MONGO_SIDECAR_POD_LABELS
value: "app=skeleton-mongodb"
- name: MONGODB_DATABASE
valueFrom:
configMapKeyRef:
name: skeleton
key: mongo_db
- name: MONGODB_USERNAME
valueFrom:
configMapKeyRef:
name: skeleton
key: mongo_username
- name: MONGODB_PASSWORD
valueFrom:
secretKeyRef:
name: skeleton
key: mongodb_user-password
volumes:
- name: skeleton-mongodb-init
configMap:
name: common-mongodb-init
volumeClaimTemplates:
- metadata:
name: skeleton-mongodb-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: managed-premium
マスターであるポッドを見つけようとすると、マスターとしてポッドを見つけることができません。
for ((i = 0; i < 3; ++i));
do
kubectl exec --namespace default skeleton-mongodb-$i -- sh -c 'mongo --eval="printjson(rs.isMaster())"';
done
3つのポッドすべてを取得しています
{
"ismaster" : false,
"secondary" : false,
"info" : "Does not have a valid replica set config",
"isreplicaset" : true,
....
"readOnly" : false,
"ok" : 1
}
何か足りないかどうかわからない