概要
Redisの冗長構成は
の3種類がありますが、そのうちのReplicationについて説明します。
環境
- Redis 5.0.7
Replication
Replicationはmasterからデータをreplicaにコピーし、read系コマンドをreplicaから行うことでスケーラビリティを向上させる冗長構成です。
システム図
Replicationのシステム図は以下です。
続きを読む
Redisの冗長構成は
の3種類がありますが、そのうちのReplicationについて説明します。
Replicationはmasterからデータをreplicaにコピーし、read系コマンドをreplicaから行うことでスケーラビリティを向上させる冗長構成です。
Replicationのシステム図は以下です。
続きを読む
以前↓の独自メトリクスを作る方法を紹介しました。
これはdirect instrumentation(直接計装)というやり方で、アプリケーションサーバ自体がstatsを持ちprometheusにデータを渡すやり方です。
今回はそうではなく別プロセスや別サーバ、ホストOSのstatsを取り込んでコレクタとして登録する方法を紹介します。
イメージ的には各stats情報をprometheusフォーマットに変換するproxyを作る感じです。
AWKは文字列の検索、抽出、変換などができるプログラミング言語です。
Unix、Linuxは基本的にテキストをプロトコルとしています。AWKを扱えるとそのプロトコルをより柔軟に扱えることになります。
あらかじめ知っておくべき知識を書いていきます。
awkの書式は以下のようになっています。
$ awk 'パターン {アクション}'
パターンとアクションは両方同時に書く必要はなく、以下のようになります。
ケース | どうなるか |
---|---|
アクションのみ | 全てのレコードに対してアクションが実行される |
パターンのみ | パターンにマッチしたレコードを表示する |
パターンもアクションもない | 何も表示されない |
cgroups (control groups)は、プロセスグループのリソース(CPU、メモリ、ディスクI/O、ネットワークなど)を制限、考慮、分離するLinuxカーネル機能です。
これを使ってプロセスのリソース制限を行ってみます。
cgroupsの構成は以下のようになっています。
ref: 1.2. サブシステム、階層、コントロールグループ、タスクの関係 Red Hat Enterprise Linux 6 | Red Hat Customer Portal
続きを読むLinuxにはPAMという認証システムとアプリケーションを分離するための仕組みが用意されています。
ref: https://docs.oracle.com/cd/E19253-01/819-0396/ch3pam-01/index.html
プラガブルという名前の通り、モジュールによって認証方法を簡単に切り替え可能になっています。
今回はその設定を理解します。
続きを読むgRPCサーバのヘルスチェック方法として
といった方法がありますが、前者はgRPCサーバなのにHTTPサーバを用意しないといけなかったり、後者はtcpのopenは実際にServe開始したタイミングではないといった課題があります。
そこでKubernetesでは3番目の手段として何かしらのヘルスチェックのgRPCをコマンドラインから呼んでチェックする方法を推奨しています。
ref: Health checking gRPC servers on Kubernetes - Kubernetes
続きを読む