---
title: "GKEのyamlファイルの管理どうしてる？ | grasys blog"
url: "https://blog.grasys.io/post/tsunoda/gke-yaml/"
description: "こんにちはtsunodaです。 もう11月、、小さい頃は年末ってワクワクしましたよね！小さい頃は！ GKEを触ってて思ったのが、 みんなyamlファイルどこにどう置いて管理してるの？ です。 terraformのディレクトリ管理どうしてる？的な。 Dockerfile、cloudbuild.yaml、ingressや…"
---

# GKEのyamlファイルの管理どうしてる？

-   ![](/_astro/noicon.CTHOhNiB_1HMs6A.webp)[tsunoda](/authors/tsunoda/)
-   公開日：2022年11月25日
-   カテゴリー：[Tech](/categories/tech/)
-   タグ：[#Google Cloud](/tags/google-cloud/)[#GKE](/tags/gke/)[#Kubernetes](/tags/kubernetes/)[#YAML](/tags/yaml/)

![GKEのyamlファイルの管理どうしてる？](/_astro/hero.C_tlUvdf_Z11MRKs.webp)

こんにちはtsunodaです。  
もう11月、、小さい頃は年末ってワクワクしましたよね！小さい頃は！

GKEを触ってて思ったのが、  
みんなyamlファイルどこにどう置いて管理してるの？  
です。  
terraformのディレクトリ管理どうしてる？的な。

Dockerfile、cloudbuild.yaml、ingressやpvcなどのyamlファイルの管理について。

GKEでnginxを立ち上げた時を例に、その時私はこうしました、をさらっと紹介しようと思います。基礎です。

### 置いてみる

まずはDockerfile、GKE用のディレクトリを掘っておもむろにスッと置きます。

Plain textcontent\_copy

```
gke_nginx
├── Dockerfile
```

そして今回cloudbuildも使ったので、cloudbuild.yamlもDockerfileと同じ階層に置きます。

Plain textcontent\_copy

```
gke_nginx
├── Dockerfile
├── cloudbuild.yaml
```

アクセス先のindex.htmlも同じ階層に置けばイジりやすいよねってことでindex.htmlも同じ階層に。

Plain textcontent\_copy

```
gke_nginx
├── Dockerfile
├── cloudbuild.yaml
├── index.html
```

残りの作りたいyamlは以下です。  
・configmap.yaml  
・deployment.yaml  
・ingress.yaml  
・pvc.yaml  
・service.yaml

この辺は manifest ってことで階層を分けて管理がしたいので、1個ディレクトリを掘りました。  
最終的にこんな感じになりました。

Plain textcontent\_copy

```
gke_nginx
├── Dockerfile
├── cloudbuild.yaml
├── index.html
└── manifests
      ├── configmap.yaml
      ├── deployment.yaml
      ├── ingress.yaml
      ├── pvc.yaml
      └── service.yaml
```

いかがでしょうか、nginxであればこんな感じで十分かなと思います。

### yamlファイル同士の紐付け系

どのファイルにどれ紐付けるっけ？  
今回のnginxを例に基礎的なyamlファイルの関連付けについて簡単にまとめ。

○configmap.yaml  
ここにnginxのconfを記載、このconfigmapに名前も付ける。

○pvc.yaml  
マウントするディスクの名前付ける、サイズなども書く。

○service.yaml  
serviceのタイプを決めて、serviceの名前もつける。  
selectorでpodも選択しておく。

○ingress.yaml  
ingressに名前つける。backendにservice.yamlで作ったserviceの名前指定する。

○deployment.yaml  
deployの名前つける。selectorでpod選択する。  
configmap.yamlに書いたnginxのconfをコンテナにマウントするべくマウントするpathも含めて記載する。  
pvc.yamlで書いたdiskをマウントするべくマウントするpathも含めて記載する。

○cloudbuild.yaml  
ここでmanifests/配下のファイルを指定してgke-deployを実行する。

### おまけ

実際にサービス運用として環境も分けてわちゃわちゃ作っていくときは、  
cloudbuild用ディレクトリ、nginxのDockerfileとconf用ディレクトリ、manifests用ディレクトリといった具合に分けて、  
base,overlaysを用いてkustomizeでデプロイなんかも。

Plain textcontent\_copy

```
gke_sample
├── cloudbuild
│  　　 ├── cloudbuild_dev.yaml
│  　　 ├── cloudbuild_prd.yaml
│  　　 └── cloudbuild_stg.yaml
├── kustomize
│  　　 ├── base
│  　　 │  　　 ├── deployment.yaml
│  　　 │  　　 ├── kustomization.yaml
│ 　　  │ 　　  └── etc...
│ 　　  └── overlays
│     　　 　　　　 ├── dev
│     　　　　 　　 │  　　 ├── deployment.yaml
│     　　　　 　　 │ 　　  ├── kustomization.yaml
│     　　　　 　　 │ 　　  └── etc...
│     　　　　 　　 ├── prd
│     　　　　　　  │ 　　  ├── deployment.yaml
│     　　　　　　  │ 　　  ├── kustomization.yaml
│     　　　　　　  │ 　　  └── etc...
│     　　　　　　  └── stg
│       　　　　　　   　　　　 ├── deployment.yaml
│      　　　　　　   　　　　  ├── kustomization.yaml
│      　　　　　　   　　 　　 └── etc...
├── kustomize_dev.sh
├── kustomize_prd.sh
├── kustomize_stg.sh
├── manifests
│   　　├── dev
│  　　 │  　　 ├── configmap_dev.yaml
│  　　 │ 　　  ├── deployment_dev.yaml
│  　　 │ 　　  ├── namespace_dev.yaml
│ 　　  │ 　　  └── etc...
│ 　　  ├── prd
│  　　 │ 　　  ├── configmap_prd.yaml
│  　　 │ 　　  ├── deployment_prd.yaml
│  　　 │ 　　  └── etc...
│  　　 └── stg
│     　　　　 　　 ├── configmap_stg.yaml
│     　　　　 　　 ├── deployment_stg.yaml
│     　　　　 　　 └── etc...
└── nginx
  　 　　 ├── Dockerfile
  　 　　 └── nginx.conf
```

## この記事を書いた人

[![](/_astro/tsunoda.CrA_Wh9V_Z1aOeCP.webp)](/authors/tsunoda/)

### [tsunoda](/authors/tsunoda/)

tsunodaのプロフィールと執筆記事をご覧いただけます。

[プロフィールと記事一覧](/authors/tsunoda/)
