k8s использование переменных окружения/ Config map / Secret

Так мы зададим 2 переменные LANGUAGE и API_KEY

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: envtest
spec:
  replicas: 1
  template:
    metadata:
      labels:
        name: envtest
    spec:
      containers:
      - name: envtest
        image: gcr.io/<PROJECT_ID>/envtest
        ports:
        - containerPort: 3000
        env:
        - name: LANGUAGE
          value: "English"
        - name: API_KEY
          value: "123-456-789"

Можем их использовать например в js файле

var http = require('http');
var server = http.createServer(function (request, response) {
  const language = process.env.LANGUAGE;
  const API_KEY = process.env.API_KEY;
  response.write(`Language: ${language}\n`);
  response.write(`API Key: ${API_KEY}\n`);
  response.end(`\n`);
});
server.listen(3000);

Secrets — для конфиденциальной информации (использует шифрование)

Config map — для открытых переменных

Примеры и конфиг где мы их используем:

kubectl create secret generic apikey --from-literal=API_KEY=123–456
kubectl create configmap language --from-literal=LANGUAGE=English
kubectl get secret
kubectl get configmap
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: envtest
spec:
  replicas: 1
  template:
    metadata:
      labels:
        name: envtest
    spec:
      containers:
      - name: envtest
        image: gcr.io/<PROJECT_ID>/envtest
        ports:
        - containerPort: 3000
        env:
        - name: LANGUAGE
          valueFrom:
            configMapKeyRef:
              name: language
              key: LANGUAGE
        - name: API_KEY
          valueFrom:
            secretKeyRef:
              name: apikey
              key: API_KEY

 

Docker

Related Articles

0 Comment

Leave a Comment

Ваш адрес email не будет опубликован.