コンテンツにスキップ

設定ファイル@K3D

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


apiVersion

apiVersion: k3d.io/v1alpha5


kind

kind: Simple


metadata

metadata:
  name: foo-cluster


servers

servers: 1


agents

agents: 2


kubeAPI

kubeAPI:
  host: example.com
  hostIP: 127.0.0.1
  hostPort: "6445"


image

image: "rancher/k3s:v1.20.4-k3s1"


network

network: foo-network


subnet

subnet: 172.28.0.0/16


token

token: superSecretToken


volumes

volumes:
  - volume: "/foo/path:/path/node"
    nodeFilters:
      - "server:0"
      - "agent:*"


ports

ports:
  - port: "8080:80"
    nodeFilters:
      - loadbalancer


env

env:
  - envVar: foo=foo
    nodeFilters:
      - "server:0"


registries

create

registries:
  create:
    name: registry.localhost
    host: 0.0.0.0
    hostPort: "5000"
    proxy:
      remoteURL: "https://registry-1.docker.io"
      username: ""
      password: ""
    volumes:
      - "/some/path:/var/lib/registry"


use

registries:
  use:
    - "foo-registries:5000"


config

▼ configとは

registries:
  config: |
    ...

▼ mirrors

Node内でイメージプルが起こる時に、デフォルトのイメージレジストリ (例:DockerHub) ではなく、代わりにミラーリングレジストリからプルするように変更する。

registries:
  config: |
    mirrors:
      <AWSアカウントID>.dkr.ecr.ap-northeast-1.amazonaws.com:
        endpoint:
          - "https://<AWSアカウントID>.dkr.ecr.ap-northeast-1.amazonaws.com"

▼ config

プライベートリポジトリからイメージをプルする場合に、これの認証情報を設定する。

registries:
  config: |
    config:
      <AWSアカウントID>.dkr.ecr.ap-northeast-1.amazonaws.com:
        auth:
          username: AWS
          # aws ecr get-login-password --region ap-northeast-1コマンドから取得したパスワード
          password: <パスワード>
        # イメージレジストリとの通信がHTTPSの場合は、SSL証明書が必要になる
        tls:
          ca_file: <証明書>
          cert_file: <証明書>
          key_file: <証明書>

HTTPSの検証をスキップすることもできる

registries:
  config: |
    config:
      <AWSアカウントID>.dkr.ecr.ap-northeast-1.amazonaws.com:
        auth:
          username: AWS
          # aws ecr get-login-password --region ap-northeast-1コマンドから取得したパスワード
          password: <パスワード> 
        tls:
          insecure_skip_verify: true


hostAliases

hostAliases:
  - ip: 1.2.3.4
    hostnames:
      - foo.example.com
      - bar.example.com
  - ip: 1.1.1.1
    hostnames:
      - cloud.flare.dns


options

options:
  k3d:
    wait: true
    timeout: 60s
    disableLoadbalancer: false
    disableImageVolume: false
    disableRollback: false
    loadbalancer:
      configOverrides:
        - settings.workerConnections=2048
  k3s:
    extraArgs:
      - arg: "--tls-san=foo.host.domain"
        nodeFilters:
          - "server:*"
    nodeLabels:
      - label: foo=foo
        nodeFilters:
          - "agent:1"
  kubeconfig:
    updateDefaultKubeconfig: true
    switchCurrentContext: true
  runtime:
    gpuRequest: all
    labels:
      - label: foo=foo
        nodeFilters:
          - "agent:1"
    ulimits:
      - name: nofile
        soft: 26677
        hard: 26677