nekop's blog

OpenShift / JBoss / WildFly / Infinispanの中の人 http://twitter.com/nekop

Kubernetes/OpenShiftのバージョンアップとクラスタをどのように分けるか問題

Kubernetes/OpenShiftのバージョンアップをどのようにするか、およびクラスタをどのように分けるかという問題はk8s関連のmeetupでよく出る話題です。昨日のレッドハット on Cloud Dayでも出たので、現時点での自分が知っている情報や考えを書いておきます。 …

Container SIG Meet-up 2018 SummerでKubernetesのServiceとかIngressの話をしました

Container SIG Meet-up 2018 SummerでKubernetes Service, Ingress and OpenShift Routerというお題でお話しました。 資料は以下に置いています。 slide.com: https://redhat.slides.com/tkimura/k8s-service-ingress/?token=cenh3zy- PDF: https://drive.go…

KubernetesのReadWriteOnceなvolume

よく聞かれるトピックでブログに書いてたと思ってたんだけど実は書いてなかったようだ。Amazon EBSとかGCEPersistentDiskとかAzureDiskとかGluster Block Storageとかを利用するReadWriteOnceのvolumeのお話。 https://kubernetes.io/docs/concepts/storage/…

OpenShiftにfluentd公式イメージのdaemonsetをデプロイする

OpenShiftにはConfigMapで設定変更できるfluentdが用意されているので、このブログ記事の内容は大抵の人は必要ないはずです。特定の新しいバージョンのfluentdが必須であるとか、あえて別にfluentd公式イメージをデプロイする理由がある人だけ読んでください…

AzureのAKSのkubectl describe nodeを見る

Kubernetesで実際のメモリを超えるコンテナアプリを動かすと、どうなるか? - あさのひとりごとにスケジューリングリソースの解説がされていますが、一番重要なkubectl describe nodeの生のデータが掲載されていないのがちょっともったいないかなと思ったの…

OpenShift CNSでgluster-blockを有効化する

OpenShiftではAnsibleのインベントリにglusterfsグループを定義するとCNSをセットアップしてくれる。 [glusterfs] node[01:03].example.com glusterfs_devices='[ "/dev/sda" ]' しかしこの記述でセットアップされるのは普通のglusterfsファイルシステムマウ…

OpenShiftで外部のコンテナレジストリへpushするビルドを作成する

Kubernetes / OpenShift もくもく会 No. 2です。 OpenShift Container Platform 3.9がリリースされたので、会社にある自分のメインクラスタを3.7から3.9にアップグレードしています。並行して3.4, 3.5 3.6, 3.7のテスト環境のプロビジョニングを仕掛けました…

Kubernetes CLI pluginを使ってOpenShiftのアプリケーション情報をダンプするpluginを作る

Kubernetes / OpenShift もくもく会 No. 1でした。 ここにあるOpenShiftで特定のプロジェクト(ネームスペース)をダンプするスクリプトをてきとーに作って使ったりしていたんですが、他の人にも使われるようになって汎用化とかOpenShiftの製品の一部にすると…

ThinkPad T470sにFedora 27インストール

会社からクリスマスプレゼントでThinkPad T470sをもらったので翌日出社して受け取ってFedora 27をインストールしてメインマシンのスイッチ。スペックはIntel Core i7-7600U 2.8GHz 4 cores, 16GB mem, NVMe SSD 256GB。 前回の記録はFedora 24インストール。…

OpenShift Container Platform 3.7をAWS上にシングルノードでセットアップする

OpenShift 全部俺 Advent Calendar 2017 OpenShiftをAWSでセットアップするリファレンスアーキテクチャやCloudFormationやデプロイスクリプトなどはいろいろ用意されていますが、本番構成向けのもったりした構成です。AWS上でのテスト用にシングルノードセッ…

OpenShiftでメモリでオートスケールをしてみる

OpenShift 全部俺 Advent Calendar 2017 まだAlpha機能ですが、CPUではなくメモリ利用量でオートスケールを設定することができます。 https://docs.openshift.org/latest/dev_guide/pod_autoscaling.html#pod-autoscaling-memory 先に重要な点を書いておきま…

OpenShiftのmaster-config.yamlやnode-config.yamlの書式

OpenShift 全部俺 Advent Calendar 2017 たとえばmaster-config.yamlをカスタマイズしたい場合にどうやって記述すればいいのかなどを調べたい場合があります。 以下に項目がさらっと書かれたドキュメントがあり、さらっと把握するのには役立ちますが、やはり…

OpenShiftのディスク利用傾向

OpenShift 全部俺 Advent Calendar 2017 OpenShiftやKubernetesではどのようにディスクが使われ、どのくらいのディスクを必要とするのでしょうか。PVを割り当てて利用する分は自明ですが、それ以外はどのようになっているでしょうか。 コンテナイメージにVol…

OpenShiftでUID指定されているコンテナをデプロイする

OpenShift 全部俺 Advent Calendar 2017 OpenShift上で動作するコンテナにはOpenShift側で採番されたUIDが割り当てられて、そのUIDで動作します。そのため、rootや特定のUIDでファイルにアクセスしたりすることを期待しているコンテナは動作しません。 とは…

OpenShiftのResource requestとlimit

OpenShift 全部俺 Advent Calendar 2017 最初はどのように指定したらいいかわかりづらいという質問がよくあるKubernetesのResource requestとlimitです。 https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ Podにはこ…

OpenShiftでファイルをシングルファイルマウントで置き換える

OpenShift 全部俺 Advent Calendar 2017 OpenShiftやKubernetesではConfigMapを使ってファイルを差し替えることができます。今日はJBoss EAPのstandalone-openshift.xmlをConfigMapでカスタマイズしたいなー、と思ってやってみたらストレートに行かなかった…

OpenShiftやKubernetesのCLIでGo templateを利用する

OpenShift 全部俺 Advent Calendar 2017 OpenShiftのocコマンドやKubernetesのkubectlコマンドの--templateオプションにGo templateを指定することによって、結果の値の一部分を抜き出したりすることができるので便利です。 たとえばsvc/docker-registryのCl…

OpenShiftのImageStream

OpenShift 全部俺 Advent Calendar 2017 OpenShiftにはKubernetesに無いImageStreamというオブジェクトがあります。ImageStreamは内部的にタグに対応するDockerレジストリを管理し、それに追加で機能を提供します。ImageStreamは大きく以下の三つの機能を提…

OpenShiftやKubernetes上でJavaを動かす際の注意

OpenShift 全部俺 Advent Calendar 2017 OpenShiftやKubernetes上でリソース制限を設定したコンテナでJavaを動かすとき、デフォルト設定のままだとパフォーマンスが悪くなったり、oom-killerに殺されたりします。これはコンテナのcgroupsの制限をJavaが考慮…

OpenShiftのRouteとRouter

OpenShift 全部俺 Advent Calendar 2017 OpenShiftにはKubernetesで言うところのIngress, Ingress ControllerであるRouteとRouterが標準で利用できます。Kubernetes 1.0のころにはIngressが無かったので、独自に実装されました。 https://docs.openshift.org…

OpenShiftでStatefulSetを使ってみる

OpenShift 全部俺 Advent Calendar 2017 今までは普通のデプロイメントを利用していましたが、今回はちょっと特殊な性格を持つStatefulSetを使ってみましょう。StatefulSetのレプリカは連番のsuffixが付与され、スケール時の順序制御があったりvolumeClaimTe…

OpenShiftのs2iイメージをカスタマイズする

OpenShift 全部俺 Advent Calendar 2017 昨日は忘年会でした。全部俺 Advent Calendarがすごく大変そう、と言われましたが各エントリ20分程度で書いていますし、そうなるように内容を調整しています。例えば昨日のエントリは17時くらいに同僚に何書いて欲し…

OpenShiftのRBACを完全に理解する

OpenShift 全部俺 Advent Calendar 2017 よくわかりにくいと言われがちなOpenShift / KubernetesのRBACについて書いてみましょう。RBACは元々OpenShiftで実装され、それを元にKubernetes側へ実装された経緯があり、OpenShiftのclusterroleというリソースオブ…

OpenShiftのPipelineビルドで利用するイメージをカスタマイズする

OpenShift 全部俺 Advent Calendar 2017 Google Home買いました。日本語設定でいろいろやってみて、3歳児が「おーけーぐるぐる、てべりをちゅけてください、おねがいします!」と話しかけてるのを一通り楽しんでから英語設定にスイッチして使ってます。これ…

OpenShiftでJenkins Pipelineビルドを利用する

OpenShift 全部俺 Advent Calendar 2017 OpenShiftにはソースコードからビルドするs2iビルド、Dockerfileを利用してビルドするDockerビルドの他にJenkinsを利用したPipelineビルドというのがあります。s2iビルドやDockerビルドはコンテナイメージを生成してp…

OpenShiftでPVの中身を別のPVへ移行する

OpenShift 全部俺 Advent Calendar 2017 OpenShiftやKubernetesでPVを作って使ってたらPVが一杯になってしまったので大きなサイズのPVへ移行したい、であるとか、HDDのPVを使ってたけどSSDのPVに変えよう、というようなデータ移行のユースケースが発生します…

OpenShiftでDockerfileやバイナリビルド利用してコンテナをビルドする

OpenShift 全部俺 Advent Calendar 2017 昨日はギョウザパーティでした。基本のs2iビルドではソースコードからビルドしましたが、今回はDockerfileを利用します。 ソースコードと同じようにDockerfileが置いてあるGit URLを指定すると同じようにビルドできる…

OpenShift Container Platform 3.7をシングルノードでインストールする

OpenShift 全部俺 Advent Calendar 2017 商用版のOpenShift Container Platform 3.7をシングルノードでインストールしてみます。 利用する/etc/ansible/hostsファイルの中身はこんな感じです。OpenShift Container Platform 3.6以前ではシングルマスター構成…

Red Hat OpenShift Application Runtimes

OpenShift 全部俺 Advent Calendar 2017 Red Hat OpenShift Application Runtimesがリリースされたのでさわってみたいと思います。Spring BootやVert.x, WildFly Swarmなどを使ってOpenShift上でマイクロサービスアプリケーションの開発をサポートする製品で…

OpenShiftのocコマンドの基本

OpenShiftを利用するにあたって、最初に覚えておいたほうが良いいくつかのコマンドがあります。例えばoc get allとoc get eventです。うまくいかないときなどは大抵この2つを参照することになります。 ocコマンドはヘルプが充実しているので、わからないこと…