お久しぶりです。生きております…! 最近はコンテナ基盤の監視やログ収集について勉強しておりました。定番のPrometheus+GrafanaやEFKスタックについてですね。前者ではcadvisor、node-exporterを使った一般的なDockerホスト監視やbackbox-exporterを使った…
コンテナのセキュリティレベルを上げるためにホストOSとの分離レベルをあげようというモチベーションで開発されたプロダクトがいくつかあります。gVisorやrunV、kata containersなどがそれです。今回はその中のkata containersを検証してみました。kata cont…
前回、Kubernetesのノード障害時の挙動について記事を書きました。このときはDeploymentを使って挙動を確かめていたですが、前回の記事を見た方から「StatefulSetだと挙動が違ったはず」とのご意見を頂戴しました。 https://twitter.com/tzkb/status/1116597…
Kubernetes上のアプリケーションの可用性について調べていたところ、ノード障害時に気をつけたほうが良い点を見つけたので記事にしてみます。 Kubernetesのノード障害時にはノードのステータスがNotReadyになります。Kubernetesクラスタが以下の通り構成され…
3/12にRancher公式ブログで発表された、「Submariner」という新しいOSSを動かしてみましたので、軽く所感を書きます。 Submarinerってなに? 複数のKubernetesクラスタのPodネットワークおよびServiceネットワークを繋げるプロダクトです。NodePortサービス…
この度、Kubernetesの認定資格「CKA(Certified Kubernetes Administrator)」を取得いたしました! 今後受ける方のお役に立てばと、受験レポートを残しておきます。 要約 〜忙しい人はここだけ読んでね〜 試験に関する説明の書かれている英語のドキュメント「…
ふとしたきっかけで、deploymentを以下のように定義していたわけです。 apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: v1 name: nginx spec: replicas: 1 selector: matchLabels: app: v1 strategy: {} template: m…
OpenStack Swiftで新しくストレージノードを構築し、既存リングを拡張する機会がありましたので、その際の手順をメモしておきます。 手順 proxyノードで以下のコマンドを叩きます。 # accountリングの拡張 swift-ring-builder account.builder add r<region num>z<zone num>-<storage node ip>:6202/<device name></device></storage></zone></region>…
Dockerを使う際にまずお世話になるのがパブリックなコンテナイメージレジストリサービスであるDocker Hubかと思うのですが、業務で本格的にDockerを使うとなった際にはクローズドなネットワークセグメントでしかDockerホストを実行できなかったりして、プラ…
KubeVirtをお試ししてみたので、その際のメモを残しておきます。 KubeVirtとは KubeVirtはRed Hat社が主に開発している、CNCF MemberプロダクトのOSSです。KubeVirtを使うとKubernetes上で仮想マシンを管理することができるようになります。これによりコンテ…
Kubernetesの構築をスクラッチで実践できるチュートリアルとしてKubernetes the Hard Wayがあります。来年のはじめくらいにCKAを取得したいと考えているので、本チュートリアルを自宅のOpenStack上で実施してみました。その際の実施手順と少しばかりの解説を…
現在開催中のJapan Container Days 1812の基調講演でvirtual-kubeletなるプロダクトを聞いたので、サクッと試してみました。 virtual-kubeletとは Kubernetesにおけるkubeletの実装の一つで、podの作成先を他のプラットフォームのAPIに依頼することができる…
少しずつ、プライベートクラウド(OpenStack)の構築時ナレッジを書いていこうと思います。本日はNeutron LBaaSについてです。 Neutron LBaaS自身、Octaviaにその役割を譲りつつあり、Deprecateなのですが、LB用VM立てるよりもHAproxyのプロセスをネットワーク…
Kubernetesクラスタの構築方法など、インフラ観点での記事を書くことが多い本ブログですが、Kubernetesを学んでみると インフラエンジニアもアプリケーションエンジニアの気持ちがわかったほうがいい! というお気持ちになるのです。CI/CDとか考えると特に。…
Docker for WindowsでMySQLコンテナのデータを永続化する際、ホストディレクトリを/var/lib/mysqlに単純にマウントすると、MySQLコンテナ側で以下のようなエラーが出ます。 2018-11-18T10:02:32.761277Z 1 [ERROR] [MY-012646] [InnoDB] File ./ibdata1: 'op…
Windows 10の10月24日のアップデートでGUI上から一部の既定のアプリを変更することができないようになっているみたいです。これに見事にはまり、.txtファイルの既定のアプリをメモ帳から変更できなくなってしまいました。。。 Microsoft側もこのことを認識し…
お久しぶりです。4か月間ぐらい全くポストしていませんでしたが生きています。 何やっていたかというと、自宅環境をOpenStackによってプライベートクラウド化しておりました。これが完成しないと諸々の検証ができないので、ブログのポストより優先していたら…
前の記事を公開してすぐにv.1.11が出てしまい、構築方法が変わったので、泣きながら再検証... 構成 OS: CentOS7 サーバ群 Master + etcd 3台(aws-k8s-master[01-03]) Node 3台(aws-k8s-node[01-03]) 前提 作業ユーザはroot 手順 NLBの作成(AWS ManagementCon…
AWS上でkubeadmを使い、Kubernetes HAクラスタを作ってみたときのメモです。 構成 OS: CentOS7 サーバ群 Master + etcd 3台(aws-k8s-master[01-03]) Node 3台(aws-k8s-node[01-03]) 前提 作業ユーザはroot 手順 Dockerのインストール(aws-k8s-master[01-03]…
Googleが開発したgVisorを試して、簡単に性能調査してみましたので、メモとして残しておきます。 環境 OS: Ubuntu 16.04 LTS vCPU: 2 (Core i3) Mem: 4G gVisorのインストール手順 Dockerのインストール sudo apt-get update sudo apt-get install -y \ apt-…
2018年4月末にコンテナ管理プラットフォームであるRancherのバージョン2.0がGA(General Availability)となりました。対応するコンテナオーケストレーションツールをKubernetesに絞り、オンプレ/クラウド問わずKubernetesクラスタをマネジメントするOSSに昇華…
やたら長いタイトルですが… KubernetesではAPI Aggregationといって、Custom Metrics API Serverを用意しkube-apiserverと連携することでAPIを拡張することができます。例えば今回のタイトルにもある通り、Prometheusが取得したメトリクスをAPIから取得でき…
KubernetesにおけるHorizontal Pod Autoscaler(HPA)とは、Podの過負荷時(CPU使用量増、メモリ使用量増など)においてPodをオートスケーリングするリソースです。DeploymentやReplicaSetに紐付けて使います。 HPAを使ってオートスケーリングを実現するには、Po…
OpenShiftではおなじみのroute機能を、Kubernetes上でもIngressを使って再現してみたいと思います。 まずはDNSワイルドカードの有効化から。今回は*.ha-kubernetes.internalというアドレスをhaproxyポッドに割り当てます。 DNSサーバの設定 DNSワイルドカー…
前回作成したマルチマスターKubernetes環境はKubernetesの最小構成なので、今回はDashboardとDNSサービスをデプロイしたいと思います。 まずはDashboardのデプロイから。 Dashboardの設定 kube-controller-managerの設定で、ServiceAccountがAPIサーバとの通…
先日、keepalivedを用いてhaproxyを冗長化する記事を上げましたが、この高可用性ロードバランサを用いて複数マスターを持つ高可用性Kubernetestクラスタを作ってみたので、その手順を公開いたします。 環境 アーキテクチャはシンプルで、kubeletやkubectlのA…
ロードバランサとして活用できるhaproxyですが、ロードバランサ冗長性確保用デーモンであるkeepalivedを使って冗長化してみたので、その手法をメモしておきます。 なんでいきなりhaproxy + keepalivedかというと、Kubernetesの冗長化においてkubeletやkubect…
Dockerコンテナはこれまで自前でコンテナホストを建てて実行してましたが、パブリッククラウドで使うとどんな使用感なんだろう?と気になり、今更ですがAmazon ECSを使ってみました。今回は簡単にタスクを1個定義して実行してみただけですが、メモとして記事…
巷でコンテナランタイムといえばまだまだDockerが有名ですが、他にもrkt、containerd、LXD、cri-oなど、いろいろあります。今回はrktをDebian 9にインストールしてコンテナを上げてみたのでその手順をメモメモです。 sidを登録 $ sudo vi /etc/apt/sources.l…
またまたoVirtネタです。oVirtではcloud-initを使ってテンプレートからVMをプロビジョニングし、ネットワークなどの初期設定を行うことができます。これを実現するにはプロビジョニング元のテンプレートにcloud-initをインストールする必要があるのですが、…