zaki work log

作業ログやら生活ログやらなんやら

Kubernetes

SNMP Exporterを使ってArista EOSのSNMPの情報をPrometheusから参照する

SNMP Exporterをお試し。 環境は、SNMP ExporterもPrometheusもCentOS 7上で直接バイナリを実行している。(非K8s環境) SNMPエージェントについてはDockerで動作するArista EOSを使用。 Prometheusバージョンは2.23を使用。 実行用バイナリの入手 SNMP Export…

[Kubernetes] ConfigMapのおさらい (作成・環境変数・ボリュームマウント)

Kubernetes基本機能の一つであるConfigMapのおさらい。 ConfigMapを作る key=valueの形式をCLIから key=value形式のファイルから ファイルの埋め込み 指定ディレクトリ直下の全ファイルを指定 ハードタブを含むファイルの場合 バイナリファイルの場合 YAMLの…

K3sでOracle CloudのAlways Free枠のコンピュートインスタンスにKubernetesクラスタを構築する

というのをOracle Cloud Infrastructure #2 Advent Calendarの13日目の記事としてQiitaにアップしました! qiita.com qiita.com 夜中にちょっと遊んでたんだけど、k0sも簡単だったけど、K3sも簡単でした。 Oracle Cloud Always Free枠でk3sでcontrol plane +…

Rook/Cephのブロックストレージとオブジェクトストレージを使ってGROWI WikiをKubernetesで動かす (Qiita / 追記あり)

Rookと仲間たち、クラウドネイティブなストレージの Advent Calendar 2020の3日目のエントリをQiitaにアップしました。 (Qiitaに記事書いたのいつぶりだろw) 今年も来た!Rookといえば、 @AokiTenzen さんや @takutaka1220 さん、 @zaki_hmkc さんもいるし…

[Kubernetes] 軽量ディストリビューション k0s をローカルで動かしてみた

シングルバイナリで簡単・軽量で動くKubernetesディストリビューション「k0s」が出たということで、手元で試してみた。 新しい Kuberentes distro, #k0s が OSSで公開されました!軽量、ワンバイナリ、Intel/ARM対応、アップデートも簡単! チェックしてみて…

[Kubernetes + Prometheus] prometheus-adapterを使ってmetrics serverをデプロイしkubectl topを使えるようにする

kubectl topやhpaを使うための準備。 Prometheus単体をデプロイするだけだと、metrics serverが存在しないのでこれらは使えない。 [zaki@cloud-dev helm-prometheus]$ kubectl describe apiservice v1beta1.metrics.k8s.io Error from server (NotFound): ap…

Helmチャートを使ったPrometheus + Grafanaデプロイ (非Operator構成編)

Helmチャートを使ってPrometheusをインストールする、その2 前回のはあまり前提を把握できてなく勢いでデプロイしたけど、「Helmを使ってPrometheus Operatorをデプロイ」していたので、今回はOperator無しのPrometheusをデプロイする。 zaki-hmkc.hatenablo…

[Kubernetes / Ansible] Ansibleを使ったHelm version3操作とカスタマイズYAML指定時の注意点 (kubernetesコレクションver 1.1.1時点)

AnsibleでHelm version3を操作する。 使用モジュール 旧helmモジュール 検証環境 playbook例 repository設定 helm repo update Helm chartのインストール カスタマイズYAML release_values (valuesもaliasで使用可能) values_files (注意点有り) サンプルコ…

Helm chartの設定値のカスタマイズと確認

helm installでchartをカスタマイズするには、helm show valuesの出力をベースにYAMLを作成する。 helm.sh ちなみにこのYAMLファイルの名称ってあるのかな。。 (K8sのリソースのYAMLファイルなら「マニフェスト」とか、Ansibleなら「プレイブック」みたいな…

Ansibleのk8sモジュールでKubernetesクラスタ上のリソースを操作する

〇 2021.02.20: APIトークンを指定した方法について追記 Ansibleのk8sモジュールを使って、Kubernetes上のリソースを操作してみる。 意外といままで試してなかった…というか実は5月頃に途中まで試したけど当時はPython2環境でpipから入れたりして文書化に手…

Helmチャートを使ったPrometheusのデプロイ (Prometheus Operator編)

(11/14 追記) 記事作成時よくわかってなかったけど、本記事では「Helmを使ってPrometheus Operatorをデプロイ、デプロイされたPrometheus OperatorがPrometheusやGrafanaをデプロイしている」という構成でした。 これを踏まえてタイトル含め少し加筆修正。 …

Prometheus OperatorでデプロイしたPrometheusにカスタムリソースを使ってレコードルール追加してみる

昨日の素のPrometheusでGetting Startedを通して動かしたことで、Node Exporterを使ったメトリクス値の収集と、ルールの追加時のファイル作成・prometheus.ymlへの設定追加を完全にマスターしたので、同じことをPrometheus OperatorでデプロイしたK8s上のPro…

KubernetesクラスタにPrometheusをOperatorを使ってデプロイしてみた (Helm無し)

OpenShiftだと最初から入ってるけれど、いくつかのマネージドK8sを除いて、EKSやAKSを含めて素のK8sクラスタは初期状態だとメトリクスサーバーはデプロイされていない。 Prometheus Operatorを使うと、メトリクスサーバーとして動作する最近流行りのPromethe…

[kubectl] kubectxとfzfでコンテキスト切り替えをインタラクティブに行う

コンテキストなどの切り替えが楽になるやつ。 職場の環境は切り替えが大量に発生するので使ってるけど、個人環境では使ってなかったので入れておいた。 kubectxとfzfで何も困ってないマン— inductor (@_inductor_) 2020年6月11日 kubectx, kubens インストー…

[Kubernetes / Helm] Helm Chart作成おためし (Getting StartedとNginx Pod作成)

helm.sh Getting Startedに沿ってやってみる。 ローカル上にあるChartファイルをパス指定してデプロイするまで。 Helm自体のGetting Startedやってから3か月も経っている件… 流れ ConfigMapのChart作成 テンプレート作成 テンプレート削除 ConfigMapのテンプ…

[Kubernetes / Istio] Sock Shopの現k8sバージョン対応とIstio対応デプロイお試し

microservices-demo.github.io 環境 quickstart webアクセス Istio対応 サイドカーインジェクション用namespace Gateway/VirtualService Gateway VirtualService デプロイして実行 Kialiでトラフィックを確認 環境 [zaki@cloud-dev ~]$ kc version --short C…

[Kubernetes / Istio] Kialiでサービスメッシュのトラフィックを俯瞰する

Kialiを使ってサービスメッシュのトラフィックをチェックする。 [zaki@cloud-dev ~]$ kc get pod,deploy,svc -n istio-system -l app=kiali NAME READY STATUS RESTARTS AGE pod/kiali-d45468dc4-jlshb 1/1 Running 5 23d NAME READY UP-TO-DATE AVAILABLE A…

[Azure / AKS] ノードのスケーリング

B2sの2ノード構成のクラスタのノードを増やしたり、B2msインスタンスタイプのノードを追加したり。 ノードのスケールアウト ノードプール名を取得 スケーリング ノードのスケールアップ ノードプールの追加 (参考)VMのインスタンスタイプ ノードプールの削除…

[Kubernetes / kubeadm]クラスタ名を指定してK8sデプロイ(kubeadm config YAML)

kubeadmを使ったクラスタ作成時にクラスタ名を設定する。 何がしたいの? 設定方法 既存のオプションもkubeadm config YAMLに設定 標準の設定YAMLの取得 (参考)構築後のコンテキスト名のリネーム 環境 Ansible自動化の実装例 何がしたいの? kubectl config …

[Kubernetes / kind] kindを使ってDocker上にクラスタを高速作成し、MetalLBも併用してクラスタ横断した通信お試し

DockerでKubernetesを動かす。 何をいってるかわからないかもしれないけど、コンテナをK8sノードとして動かすものです。 下の図のような感じで、Kubernetesノードとして動作するコンテナがDockerで動く、というものです。 (なので、podがこのコンテナの中で…

[AWS/EKS] eksctlでバージョン指定してクラスタ作成

検証なんかでeksctlでバージョン指定してKubernetesクラスタを作成したいときは、--versionを使用する。 $ time eksctl create cluster \ --name eks-1-15 \ --region ap-northeast-1 \ --nodegroup-name eks-ng-1-15 \ --node-type t3.micro \ --nodes 1 \ …

[Kubernetes] Istio (v1.6.5) Getting Started (オンプレK8sでBookInfoを動かしてwebアクセス)

Istioを入れてサービスメッシュなサンプルアプリ(BookInfo)を動かすところまで。 環境 Istio インストール download istioctl install Istio サンプルアプリケーションのデプロイ namespace作成 デプロイ podへの外部からのアクセス設定 外部からのアクセス …

Kubernetes日本語ドキュメント(kubeadm部分)で初めてのOSSコントリビュートした話

Kubernetes日本語化プロジェクトの翻訳お手伝いで、初めてOSSへのコントリビュートをしてみたのでその時の話について。 きっかけ 担当のアサイン 作業の流れ CLAの署名 初めてのfork コミットメッセージ 翻訳で困ったとき ローカルでの動作確認 本家側の変更…

[Kubernetes v1.18 / Calico メモ] デプロイ時にpodのCIDR設定を気にする必要がなくなってます

kubeadm使ったKubernetesクラスタのCNIにCalicoを使う際のカスタムアドレスの指定が簡単(というか不要)になっていたのでメモ CalicoのデフォルトCIDR kubeadm v1.17 / Calico v3.11 kubeadm v1.18 / Calico v3.14 remove flannel CalicoのデフォルトCIDR kub…

[Kubernetes] オンプレK8sでもtype:LoadBalancer Serviceが使えるようになるMetalLBを入れてみた

クラウドサービスのマネージドK8sだと気軽に使ってしまうtype:LoadBalancer Service、kubeadmとかで作ったオンプレK8sだとそのままだと使えないんだけど、このツイートで「MetalLB」というのを知って(過去にも聞いてたことはあったかもしれないけど、、いろ…

[AWS/EKS] eksctlでよく使いそうなクラスタ・ノードグループ作成のオプション (コマンドメモ)

前回はうっかりオプション何もなしでクラスタ作ってしまったので、eksctlで作成できるEKSクラスタ、オプションを指定してノードの設定などいろいろ初期設定してみる。 新規作成時のオプション デプロイ可能なpod数について ノードにsshしてみる ノードグルー…

[AWS/EKS] eksctlコマンドを使ってK8sクラスタをコマンド1発で作成・削除

EKSのCLIツールであるeksctlを使ってEKSクラスタを作った時のメモ。 必要な操作はすべて公式ドキュメントに載っているので、野良記事を参考にせずに公式ドキュメントを見ること。 docs.aws.amazon.com CLIツールをインストール EKSクラスタの作成 認証情報 v…

[Kubernetes] オンプレK8sでもRook-Cephを使ってpvのダイナミックプロビジョニングを試してみる

Rook v1.3のRook Ceph Storage Quickstartに沿って、クラウドのマネージドK8sやvSphere VolumeのようなIaaSのストレージ機能が何もないオンプレベアメタルなKubernetesクラスタでもPersistentVolumeのダイナミックプロビジョニングが使えることを試してみま…

Ansible Night オンライン!2020.06 でKubernetes構築(kubeadm)の自動化でLT登壇した振り返り

登壇から1週間空いてしまいましたが、「Ansible Night オンライン! 2020.06」で(人生2度目の)LT枠で登壇をしましたので、振り返りたいと思います。 ansible-users.connpass.com 発表スライド 内容について 申し込み(CfP) 企画の参加 初めてのオンライン発表…

[Kubernetes] podに任意のログを発生させてkubectl logs -fの出力を自由にコントロールしたい

podのログの監視ツール作成みたいな作業をしているときに「任意のログをpod内に発生させたい!」ということがあったので、その方法について。 TL;DR 解説 podで動作確認 普通のLinux OS上で確認 TL;DR ログを発生させたい対象podのシェル上(kubectl exec -it…