Skip to content

Latest commit

 

History

History
100 lines (93 loc) · 2.66 KB

Kubernete.md

File metadata and controls

100 lines (93 loc) · 2.66 KB

将配置置于一个secret中,并mount到pod的环境变量中

kubectl create secret generic -n tt doc-server \
	--from-literal=GITLAB_TOKEN=123456798123456798 \
	--from-literal=GITHUB_TOKEN=123456798123456798 \
	--from-literal=GIT_ORIGIN="https://oauth:token@gitlab.example.com/king/doc-server.git" \
	--from-literal=LOCAL_DIR=/tmp/data \
	--from-literal=REDIS_URL= \
	--from-literal=CORP_ID= \
	--from-literal=CORP_AGENT_SECRET= \
	--from-literal=CORP_AGENT_ID=

新建[部署],包含两个docker镜像的pod

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: doc-server
  namespace: tt
  labels:
    app: doc-server
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: doc-server
    spec:
      volumes:
      - name: config
        secret:
         secretName: doc-server
      - name: data
        emptyDir: {}
      containers:
      - name: doc-server
        image: qiujinwu/doc-server:0.1
        ports:
          - containerPort: 8888
            name: port-8888
        volumeMounts:
          - mountPath: /tmp/data
            name: data
        env:
          - name: GIT_ORIGIN
            valueFrom:
             secretKeyRef:
              name: doc-server 
              key: GIT_ORIGIN
          - name: LOCAL_DIR
            valueFrom:
             secretKeyRef:
              name: doc-server 
              key: LOCAL_DIR
          - name: GITLAB_TOKEN
            valueFrom:
             secretKeyRef:
              name: doc-server 
              key: GITLAB_TOKEN
          - name: GITHUB_TOKEN
            valueFrom:
             secretKeyRef:
              name: doc-server 
              key: GITHUB_TOKEN
          - name: REDIS_URL
            valueFrom:
             secretKeyRef:
              name: doc-server 
              key: REDIS_URL
          - name: CORP_ID
            valueFrom:
             secretKeyRef:
              name: doc-server 
              key: CORP_ID
          - name: CORP_AGENT_SECRET
            valueFrom:
             secretKeyRef:
              name: doc-server 
              key: CORP_AGENT_SECRET
          - name: CORP_AGENT_ID
            valueFrom:
             secretKeyRef:
              name: doc-server 
              key: CORP_AGENT_ID
      - name: redis
        image: redis:4
        ports:
          - containerPort: 6379
            name: port-6379

关于多副本的问题

在多副本的情况下,考虑到github/gitlab回调,通过nginx反向代理,或者kubernete的service,一般只有一台收到请求,这会导致不同的副本的数据不一致

解决这个问题的办法是,通过一个临时的目录[volumes/emptyDir]来共享多副本的数据