AdminerをKubernetesで起動するDeployment

MySQLやPostgresのCRUD操作をお手軽にするためのWebインタフェース Adminer の起動

Deployment

  • kubectl apply -f deployment.yml でそのまま利用可能
  • Namespace は adminer としている
  • Adminer の画面デザインを変更するテーマを環境変数 ADMINER_DESIGN で指定可能
---
apiVersion: v1
kind: Namespace
metadata:
  name: adminer
---
apiVersion: v1
kind: Service
metadata:
  name: adminer
  namespace: adminer
  labels:
    app: adminer
spec:
  # 利用環境にあわせる。EKSでAWS Ingress Contoller (ALB)を利用する場合は指定不要
  # type: LoadBalancer
  selector:
    app: adminer
  ports:
    - port: 80
      targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: adminer
  namespace: adminer
  labels:
    app: adminer
spec:
  selector:
    matchLabels:
      app: adminer
  template:
    metadata:
      labels:
        app: adminer
    spec:
      containers:
        - name: adminer
          image: adminer:4
          ports:
            - containerPort: 8080
          env:
            - name: ADMINER_DESIGN
              value: "pokorny"

Ingress (AWS Ingress Loadbalancer)

  • ここでは AWS Ingress の例
  • Ingress の構築方法は Kubernetes クラスタに応じて色々あるので利用環境にあわせる
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: adminer-ingress
  namespace: adminer
  annotations:
    kubernetes.io/ingress.class: alb
    # VPCでイントラ提供している場合
    alb.ingress.kubernetes.io/scheme: internal
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS": 443}]'
    # 証明書を使いたい場合はここに書く (この値は dummy)
    alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:ap-northeast-1:123456789012:certificate/12121212-abab-cdcd-efef-012345689012
    # 自分で作成したAWS LoadBalancer のグループ名を書く
    alb.ingress.kubernetes.io/group.name: eks-alb-grop
    alb.ingress.kubernetes.io/target-type: ip
    alb.ingress.kubernetes.io/healthcheck-path: "/"
    alb.ingress.kubernetes.io/success-codes: "200"
spec:
  rules:
  	# 任意のURL
    - host: adminer-web.example.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: adminer
                port:
                  number: 80
MySQL の管理用 GUI ツール Adminer を Kubernetes に設置
MySQL の管理用 GUI ツール Adminer を Kubernetes に設置
https://fand.jp/how-to-launch-adminer/
MySQL の Web管理ツール Adminer を Kubernetes や Docker 起動する手順のカンペ