Corredor

ウェブ、プログラミングの勉強メモ。

Kubernetes

OCI 上に OKE クラスタと踏み台サーバを構築する Terraform スクリプトを作った

Oracle Cloud Infrastructure (OCI) 上に、プライベートサブネットに配置した Oracle Container Engine for Kubernetes (OKE) クラスタを作り、そこに SSH 接続するための踏み台サーバも構築する、という Terraform スクリプトを作った。 ソースコードは以下…

Kubernetes の Replica 数を減らした時に削除される Pod は「生成日時がより新しい Pod」

普段、Kubernetes の Deployment を使って、一種類の Pod (≒ コンテナ) を複数個作り、冗長稼動させている。 1つの Deployment から作成される Pod の個数は、deployment.yaml 内の spec.replicas プロパティに指定した数値で決まる。replicas: 5 とすれば5…

Wercker を使ってみた感想

Oracle Container Pipelines として取り込まれた CI・CD ツールである Wercker を使ってみたので紹介。 wercker 参考:Oracle Blogs 日本語のまとめ: [Cloud] New in Developer Cloud - Fn Support and Wercker Integration Wercker ってどんなもの?僕が感…

Kubernetes で Blue Green デプロイをやってみた

最近の仮想技術とクラウドサービスを使うと、アプリケーションのデプロイ作業もより安全に行える。その手法の一つが「ブルー・グリーン・デプロイメント」というモノで、コレを Kubernetes クラスタでやってみた、という話。 Blue Green Deployment とは Kub…

Kubernetes で Pod が再起動しまくった原因は、コンテナのプロセスが終了したから

Kubernetes で動かすコンテナを作ってデプロイしたところ、Docker コンテナとして単体で動かしていた時は上手く動いていたのに、Kubernetes Pod としては正常に起動しない問題に遭遇した。 $ kubectl get pod で Pod のステータスを見ると、CrashLoopBackOff…

Kubernetes の Pod にファイルを転送する / Pod からファイルをダウンロードする

前回、Docker コンテナとホスト OS 間でファイルをやり取りする docker cp コマンドを紹介した。 今回は、Docker コンテナを Kubernetes クラスタ内で動かしている時に、同様にファイルを送ったり・受け取ったりする方法。 コマンドの構成は docker cp とよ…

OCI CLI・OKE・OCIR 利用時に異なるアカウントを切り替えるには

OCI (Oracle Cloud Infrastructure) 環境の参照・操作に使う OCI CLI (oci コマンド)。 なかなかいないかもしれないが、複数のテナンシーを管理していて、OCI CLI で複数の環境を操作したいという人向けに、設定ファイルの切り替え方を考えたのでご紹介。 OC…

kubectl コマンドを使うとき異なる Kubernetes 環境を切り替えるには

前回、複数のプライベート Docker レジストリを切り替えて使う方法を紹介した。 今回は Kubernetes における環境切り替えの方法。 Kubernetes の設定ファイルは、デフォルトでは ~/.kube/config というパスに配置される。特に環境変数での設定などがなければ…

Kubernetes Secret に登録した情報を Base64 デコードして表示する

Kubernetes の Secret に登録した情報は、Base64 エンコードされた状態で保持される。そのため、kubectl get secret で情報を表示させても、Base64 文字列しか見えず、内容が確認しづらい。 勿論、登録された値を base64 --decode コマンドに流してやれば見…

Kubernetes の Pod 内で使う環境変数を Secret から設定する

Kubernetes 時代の環境変数設定。 Kubernetes Secret について deployment.yaml の env プロパティ --from-literal オプションで一つずつ登録 env・valueFrom で1つずつ参照紐付け --from-env-file オプションで一括登録 envFrom で一括読み込み 以上 Kubern…

OCI ことはじめ : OCIR に Push した Docker イメージを OKE クラスタ上で動かしてブラウザからアクセスするまで

OCI : Oracle Cloud Infrastructure という IaaS を使ってみる。OCI には OCIR : Oracle Cloud Infrastructure Registry と呼ばれるプライベート Docker レジストリと、OKE : Oracle Container Engine for Kubernetes という Kubernetes マネージド・サービ…

Kubernetes クラスタの Load Balancer に SSL を適用する

Let's Encrypt などでサーバ証明書を発行した後、それを Kubernetes クラスタに適用する方法。 今回は、各 Pod (Docker コンテナ) 内で SSL の終端をさせるのではなく、Load Balancer で終端させて、Kubernetes クラスタ内は HTTP で通信できる方法を取る。…

Kubernetes にデプロイした複数 Pod のログをまとめて見られる「k8stail」が大変便利だった

Kubernetes を使い始めて困ったのが、動作中の Pod (コンテナ) の動作をリアルタイムで確認する方法。 Pod 内のプロセスが標準出力に出力する情報は、kubectl logs コマンドで一応見られる。しかしこのコマンド、基本は Pod 単位でログを見る前提の作りで、$…