前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >statefulset-mongo

statefulset-mongo

原创
作者头像
野猫第一
修改2021-08-17 18:14:29
1.2K0
修改2021-08-17 18:14:29
举报
文章被收录于专栏:野猫第一
代码语言:javascript
复制
---
#创建k8s集群权限开始
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: mongo-read
  namespace: zhaohao-test
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "watch", "list"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: mongodb-read
  namespace: zhaohao-test
subjects:
- kind: ServiceAccount
  name: default
  namespace: zhaohao-test
roleRef:
  kind: Role
  name: mongodb-read
  apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: mongo-view
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: view
subjects:
  - kind: ServiceAccount
#命名为default权限
    name: default
    namespace: zhaohao-test
#创建k8s集群权限结束
---
apiVersion: v1
kind: Service
metadata:
  name: mongo
  namespace: zhaohao-test
  labels:
    name: mongo
spec:
#创建的是headless无头服务
  clusterIP: None
  ports:
  - port: 32017
    name: mongo
  selector:
    role: mongo
#采用nodeport暴露的方式则打开以下注释行  32017 --> 27017
#  clusterIP: None
#    selector:
#        role: mongo
#  clusterIP: 
#  externalTrafficPolicy: Cluster
#  ports:
#  - nodePort: 32017
#    protocol: TCP
#    port: 32017
#    targetPort: 27017
#  sessionAffinity: None
#  type: NodePort
##  clusterIP: None
#  selector:
#    role: mongo
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mongo
  namespace: zhaohao-test
spec:
  selector:
    matchLabels:
      role: mongo
  serviceName: "mongo"
  replicas: 3
  template:
    metadata:
      labels:
        role: mongo
        environment: test
    spec:
      terminationGracePeriodSeconds: 10
      containers:
        - name: mongo
          #image: mongo:3.4
          image: mongo:4.2
          imagePullPolicy: IfNotPresent
          command:
            - mongod
            - "--replSet"
            - zhaohao-mongo-test
            - "--bind_ip"
            - 0.0.0.0
            #- "--smallfiles"
            #- "--noprealloc"
          ports:
            - containerPort: 27017
          volumeMounts:
            - name: data
              mountPath: /data/db
      #使用k8s官方推荐的mongo集群自动配置工具sidecar
        - name: mongo-sidecar
          image: cvallance/mongo-k8s-sidecar
          imagePullPolicy: IfNotPresent
          env:
            - name: MONGO_SIDECAR_POD_LABELS
              value: "role=mongo,environment=test"
            - name: KUBE_NAMESPACE
              value: "zhaohao-test"
            - name: KUBERNETES_MONGO_SERVICE_NAME
              value: "mongo"
  volumeClaimTemplates:
  - metadata:
      name: data
      annotations:
       #指定sc
        volume.beta.kubernetes.io/storage-class: "nfs-zhaohao"
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 1Gi

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档