4
2

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.

GitHub Container Registry(ghcr.io)のPrivateイメージをKubernetesで使う

Last updated at Posted at 2020-11-22

はじめに

GitHub Container RegirstryにPrivateで配置したコンテナイメージをKubernetesで使う方法を紹介する.

結論

imagePullSecretsを利用する.

プライベートレジストリを使用する方法 - イメージ | Kubernetes

方法

(1) imagePullSecretsの登録

プライベートイメージをPullするときに使うシークレット(imagePullSecrets)を登録する.

今回は以下のリンク先にある既存Docker用設定ファイルを流用する方法を使った.

GitHub Container Registryのセットアップ方法は過去の記事にある.

Pull an Image from a Private Registry | Kubernetes

~/.docker/config.json
{
        "auths": {
                "https://index.docker.io/v1/": {
                        "auth": "xxxxxxxxxxxxxxxxx"
                },
                "ghcr.io": {
                        "auth": "xxxxxxxxxxxxxxxxx"
                }
        }
}

手元のマシンで以下のコマンドを実行してYAMLを生成した.

kubectl create secret generic regcred \
    --from-file=.dockerconfigjson=~/.docker/config.json \
    --type=kubernetes.io/dockerconfigjson --dry-run=client -o yaml

コマンドの実行結果

ghcr.yaml
apiVersion: v1
data:
  .dockerconfigjson: XXX
kind: Secret
metadata:
  creationTimestamp: null
  name: regcred
type: kubernetes.io/dockerconfigjson

YAMLの中身をリモートにコピーしてデプロイする.

kubectl apply -f ghcr.yaml

(2) imagePullSecretsをDeploymentに追記

以下を参考にDeploymentに imagePullSecrets を記述する.

dep.yaml
apiVersion: apps/v1
kind: Deployment
spec:
  template:
    spec:
      imagePullSecrets:
        - name: regcred
# 略

kubectlコマンドでデプロイする.

kubectl apply -f dep.yaml

おわりに

プライベートレジストリも慣れれば簡単にPullできるので,この機会に利用していきたい.

4
2
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
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?