zaki work log

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

Kubernetes

[YAML] 複数行テキストの行頭にインデントを設定するには (Ansible/Kubernetes)

YAMLで複数行のテキストを記述しつつ、その先頭にインデントを設定するにはどうするか。 YAMLの複数行テキスト インデント設定 複数行表記で使用する記号の種類と効果 記号まとめ インデント量の指定 Ansibleの場合は YAMLの複数行テキスト --- data: sample…

[Kubernetes] MetalLBがHelmを使ったインストールに対応してたのでお試し(on kind)

任意のKubernetesクラスタでLoadBalancerタイプのServiceを使えるようにできるMetalLBが0.10.0からHelmを使ったインストールに対応してるようなので試してみた。 環境 MetalLBインストール with Helm リポジトリ追加 チャートとデフォルト値の確認 インスト…

[Ansible] ターゲットノードのvenvのPythonを指定して実行する (interpreter_python / ansible_python_interpreter / PYTHONPATH)

コントロールノードでなくターゲットノードで(pipで追加パッケージが必要などの理由で)venvを使いたい場合の方法について。 といっても、venvの中にあるPythonインタプリタのパスをinterpreter_pythonなどで指定すればOK。 Python2/Python3の切り替えでイン…

「Kubernetes Novice Tokyo #9」でkindをPodman環境で使う内容でLT登壇した振り返り

「Kubernetes Novice Tokyo #9」で「kind on Podman」というタイトルでLTしたので、内容について振り返ります。 k8s-novice-jp.connpass.com 発表資料 speakerdeck.com 内容 Kubernetesのノードとして動作するDockerコンテナを使うことでDocker上でKubernete…

[ssh / docker / kubectl] ローカルの標準出力をリモートの標準入力にする

sshやdocker exec、kubectl execで、シェルを起動せずに直接コマンドを実行できるが、sshなどを実行するローカルの標準出力をリモートホストやコンテナの標準入力として処理する方法について。 SSHの場合 前提。 ローカルのhostnameはcloud-devで、リモート…

kind on Podman on RHEL8でK8sを入れて、Bookinfo on Istioが動くことを確認

先日のContainer Runtime Meetup #3で「Podmanでkind動かせるよ」という話になり、どういうわけか「Podmanではkindは(まだ)動かせない」と思い込んでいたため、実際に試してみました。 ドキュメントは多分ないですが、 sudo KIND_EXPERIMENTAL_PROVIDER=podm…

[Kubernetes / Ansible] containerdをCRIに指定してクラスター構築するAnsible Playbook

明けましておめでとうございます。 年末に話題になった「KubernetesのコンテナランタイムでDocker(Dockershim)がv1.20で非推奨になる」にともない、CRIに「containerd」を指定したkubeadmを使ったクラスター新規構築を(お正月に)試してみたので簡単にまとめ…

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 コミットメッセージ 翻訳で困ったとき ローカルでの動作確認 本家側の変更…