K8S deployment 例子

创建下载镜像的 secret

kubectl create secret docker-registry aliyun-hub-secret --docker-server=hub.atguigu.com --docker-username=admin --docker-password=12345 --docker-email=klvchen@163.com

创建 secret 保存 mysql 和 es 登录信息

# mysql 数据库用户名
echo -n "root"|base64 
cm9vdA==

# mysql 数据库密码
echo -n "123456"|base64 
MTIzNDU2

# ES 用户名
echo -n "elastic"|base64 
ZWxhc3RpYw==

# ES 密码
echo -n "123456"|base64 
MTIzNDU2

# 创建 secret.yaml
vi secret.yaml
 
apiVersion: v1
kind: Secret
metadata:
  namespace: klvchen
  name: test-sync-mysql-secret
type: Opaque
data:
  password: MTIzNDU2
  username: cm9vdA==
---
apiVersion: v1
kind: Secret
metadata:
  namespace: klvchen
  name: test-sync-es-secret
type: Opaque
data:
  password: MTIzNDU2
  username: ZWxhc3RpYw==

创建例子,该例子使用了 Secrets,command,env

vi test-sync.yaml

apiVersion: apps/v1 
kind: Deployment
metadata:
  namespace: klvchen
  name: test-sync 
  labels:
    app: test-sync
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test-sync
  template:
    metadata:
      labels:
        app: test-sync
    spec:
      # 指定 secret 来下载 registry 镜像
      imagePullSecrets:
      - name: aliyun-hub-secret
      containers:
      - name: test-sync
        image: logstash:7.4.0
        # 限制 pod 资源
        resources:
          limits:
            cpu: 500m
            memory: 1Gi
          requests:
            cpu: 500m
            memory: 1Gi
        # 执行command,可在 args 中动态定义环境变量
        command: ["/bin/bash", "-c"]
        args: ["echo \"export ES_INDEX=rc_user_info_index_`date +%Y_%m_%d`\">>/etc/profile ; source /etc/profile; logstash -f /etc/logstash.conf"]
        # 定义全局变量
        env:
          - name: JDBC_USER_NAME
            valueFrom:
              secretKeyRef:
                name: test-sync-mysql-secret
                key: username
          - name: JDBC_PASSWORD
            valueFrom:
              secretKeyRef:
                name: test-sync-mysql-secret
                key: password
          - name: ES_USER_NAME
            valueFrom:
              secretKeyRef:
                name: test-sync-es-secret
                key: username
          - name: ES_PASSWORD
            valueFrom:
              secretKeyRef:
                name: test-sync-es-secret
                key: password
          - name: LS_JAVA_OPTS
            value: "-Xmx1024m -Xms1024m"
          - name: XPACK_MONITORING_ENABLED
            value: "false"
          - name: JDBC_HOST_PORT
            value: "192.168.0.199:3306"
          - name: JDBC_DB_NAME
            value: "gcw2018"
          - name: ES_HOST_PORT
            value: "192.168.0.200:9400"
          - name: ES_INDEX
            value: "test_sync_info_index"
    
posted @ 2020-08-19 10:52  klvchen  阅读(443)  评论(0)    收藏  举报