0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GCPのコンテナリポジトリの使い方

Last updated at Posted at 2020-04-10

コンテナレジストリへイメージをpush

コンテナレジストリが [HOSTNAME]/[PROJECT-ID]/[IMAGE]の場合

# gcpの認証ヘルパーを使う
gcloud auth configure-docker

# イメージ作成: docker build -t sample-image -f Dockerfile .
docker build -t [IMAGE]:[TAG] -f [FILE_NAME] [CONTEXT]
 
# 作成したイメージからコンテナリポジトリのタグ名(イメージ名)で作る
docker tag [SOURCE_IMAGE] [HOSTNAME]/[PROJECT-ID]/[IMAGE]
# または
docker tag [SOURCE_IMAGE] [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]

# 作成したイメージをプッシュする
docker push [HOSTNAME]/[PROJECT-ID]/[IMAGE]
# または
docker push [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]

# イメージ一覧取得
gcloud container images list
 
# イメージのタグ情報を確認する
gcloud container images list-tags [HOSTNAME]/[PROJECT-ID]/[IMAGE]

コンテナレジストリのイメージをpull

docker pull [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]
# または
docker pull [HOSTNAME]/[PROJECT-ID]/[IMAGE]@[IMAGE_DIGEST]

詳しくは「GCP-イメージのpushとpull」を参照してください。

k8sからコンテナを作成する

kubectlクライアントをインストール

gcloudコンポーネントからインストール

# コンポーネント一覧取得
gcloud components list
# kubectlをインストール(更新)
sudo gcloud components update kubectl
  • ~/.zshrcまたは~/.bashrcに下記を追加
~/.zshrc
export PATH=$PATH:/usr/local/share/google/google-cloud-sdk/bin/
  • 反映
# ~/.bashrc の場合は source ~/.bashrc
source ~/.zshrc

対象のクラスタを設定

# クラスタ一覧取得
gcloud container clusters list
# 一覧からクラスタをセット
gcloud container clusters get-credentials [CLUSTER_NAME] --zone=[ZONE_NAME]
# クラスタが切り替わったことを確認する
gcloud container clusters list
  • namespaceをセット
# namespaceを取得
kubectl get namespaces
# なければ作成
kubectl create namespace [NAME_SPACE]

リソースオブジェクトを作成

これによりリソースオブジェクトがコンテナを作成してくれます

kubectl apply -f FILE_PATH

よくつかうコマンド

GKEを利用する際にはクラスタを指定したり、名前空間を利用したり、シークレットを利用したり、Podの状態を監視します。
そのようなよく使うコマンドを書きにまとめてみました。

# クラスタ関連
gcloud container clusters list
gcloud container clusters get-credentials [CLUSTER_NAME] --zone=[ZONE_NAME]

# 名前空間関連
kubestl get namespaces
kubestl get namespaces [NAME_SPACE]
kubectl create namespace [NAME_SPACE]
kubectl delete namespace [NAME_SPACE]
kubestl describe namespaces [NAME_SPACE]

# リソース生成
kubectl apply -f FILE_PATH
# リソース削除
kubectl delete -f FILE_PATH

# 状態を確認する
kubectl get [RESOURCE_TYPE] -n [NAME_SPACE]
# リソースを削除
kubectl delete [RESOURCE_TYPE] -n [NAME_SPACE]
# リソースの詳細情報を取得
kubectl describe [RESOURCE_TYPE] -n [NAME_SPACE]

# Podのログを取得する
kubectl get [POD_NAME] -n [NAME_SPACE]

# イベントを取得する
kubectl get ev -n [NAME_SPACE]

# シークレット関連
kubctl create secret [TYPE] [NAME] [DATA] -n [NAME_SPACE]
kubctl create secret generic my-secret-key --from_file=キー名=my-secret-key.json -n my-space
kubectl get secrets -n [NAME_SPACE]
kubectl delete secret [NAME] -n [NAME_SPACE]
kubectl describe secret [NAME] -n [NAME_SPACE]
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?