(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

DevOps

【Kubernetes】FailedCreatePodSandBoxでPodが起動しない事象

事象 KubernetesにてPodの起動を試みるもステータスがContainerCreating/CrashLoopBackOffで起動に失敗し、Event欄を見ると以下のようなエラーが出ている。 Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 118s defa…

【Sysdig Monitor】Host down is Triggered..とイベントが発行された際の誤検知確認

事象 Sysdigをインストールした仮想マシン(Linux)から以下アラートが発行されるも Subject : Host is down is Triggered on host.mac = ... Trigger : timeAvg(avg(uptime)): 0.0000 /sマシンは正常稼働している。 環境情報 $ /opt/draios/bin/dragent --v…

【Podman/RHEL】generateを用いてコンテナを自動起動化する方法

はじめに Dockerで行った以下の作業はPodmanだとより簡単に可能です。 本記事ではRHELにて特定コンテナを自動起動するための手順をメモしました。尚、ユーザはrootで実行しています。 環境情報 podman version 1.6.4 Red Hat Enterprise Linux Server 7.9 コ…

【IBMCloud】SysdigMonitorのAPIにcurlを打つことで特定の情報を取得する

はじめに IBM Cloud Monitoringサービスに対してcurlコマンドを打つことでCUIベースで情報を取得できます。 今回はサンプルとしてホスト名と時間を指定してCPU情報を取得する流れについて記載しました。 環境情報 $ curl --version curl 7.55.1 (Windows) li…

【Kubernetes】imageGCManagerによってイメージの削除が行われる流れ

はじめに Kubernetesクラスターにおけるコンテナ基盤はkubeletプロセスによって動作していますが、kubeletにはファイルシステムが一定以上になるとガベージコレクションを行う機能が存在します。本記事はコンテナイメージ領域の逼迫に伴い発動するイメージの…

【Kubernetes】Terminatingで固まっているPodを強制的に削除する

やりたいこと 以下のようにStatusがTerminateingのまま変化しないPodを $ oc describe pod mongodb-5bc87db5bf-h5kbz ... Status: Terminating (lasts 27d) Termination Grace Period: 30sdeleteコマンドで削除する。尚、直接打つと以下で処理がフリーズする…

【Kubernetes】SchedulingDisabledとなっているNodeにDaemonSetが存在し続ける理由

はじめに 以下記事のようにNodeに対してdrainを発行して NodeのステータスをSchedulingDisabledとしているにもかかわらずDaemonSetに紐づくPodはそのNode上で削除をしても動作し続けます。本記事ではその理由について説明しました。 環境情報 $ kubectl vers…

【IBMCloud】Sysdig Monitorで確認できるOS上のファイルシステム上限を変更する

やりたいこと メトリック収集のためにMonitoringエージェントを構成済のLinuxにて、Sysdig Monitor上から確認できるファイルシステムの数を変更する。尚、デフォルトでは以下の形式にて15のファイルシステムが確認できる。 fs.device fs.mountDir fs.bytes.t…

【RHEL/Docker】yumコマンドでdockerデーモンをインストールする

はじめに Red Hat Enterprise Linux ServerにてDockerデーモンを動かす際の手順とログを記載しました。 尚、yumを利用しますがオフラインの場合は以下のように別サーバを介して行う必要があります。 環境情報 NAME="Red Hat Enterprise Linux Server" VERSIO…

【fluetnd/tdagent】failed to flush the bufferの原因を解消してもログ書き込みが行われない

事象 tdagentが受信したログがファイルとして生成されていない。 尚、/var/log/td-agent/td-agent.logにて以下メッセージが出力されているがその原因となる事象は解消している。 ... [warn]: #0 failed to flush the buffer. retry_time=8 next_retry_second…

【fluetnd/tdagent】flush_intervalでログ書き込みの遅延時間を変更する

はじめに Fluetndではblob(Binary Large OBject)を集めたchunkが一定程度溜まるか一定時間が経過するとデータを吐き出します。 そして実体はtd-agent.confの中の設定を変更することでそれらを管理し、前者はchunk_limit_size、後者はflush_intervalに該当…

【fluetnd】record_transformerで不要な項目をJSON構造で削除する

やりたいこと forward定義が入ったfluentdにて送付する対象から特定の項目を排除する。 環境情報 # fluentd --version fluentd 1.3.3 やり方 fillteの中にremove_keysで項目を指定する。尚、JSON形式におけるネスト構造は$.A.Bのように記載して抽出する。 <filter **> @</filter>…

【fluetnd】ログの送付先をSyslog経由からtdagent経由に変更する

やりたいこと fluentdでのログ送付先をSyslogではなくtd-agentに変更したい。 尚、Syslogには経由ではログは送付できており同部分の設定ファイルは以下とする。。 <label @test> <match **> @type copy <store> @type remote_syslog host x.x.x.x port 514 protocol tcp ... </store> </match> </label> 環境情報 # …

【IKS/fluentd】コンテナのログをSyslog経由で別サーバに転送する

はじめに IBM Cloud Kubernetes Service(IKS)では外部サーバーに対してSyslog経由でログ転送することができます。 本記事では実際にそれを設定した後にその動作確認をした結果について記載しました。尚、ログの送付先側ではSyslogを受け付ける設定は済んで…

【fluetnd】Syslog経由でログを送るDaemonSetのyamlを適用してみた

はじめに Fluentdの公式ページからKubernetesのログ取得をするためには以下のGithubのYAMLを利用せよとあったので fluent/fluentd-kubernetes-daemonset その中のfluentd-daemonset-syslog.yamlを実際に適用してみました。尚、Syslogの受け手にはLinuxサーバ…

【RHEL/fluetnd】TreasureDataAgent(tdagent)をインストールする流れ

はじめに コンテナのログ監視を行うために利用されるFluentdを導入すべく、受けて側の仮想マシンRHELで実際にTreasureDataAgent(td-agent)をインストールした結果について記載しました。尚、基本は以下コマンドで終わりですが、内部のスクリプトを見ながら…

【Prometheus/Openshift】node-exporterに対するスクレイピングの動きを確認する

はじめに Openshiftではopenshift-monitoringというnamespaceにデフォルトでnode-exporterが存在し $ oc get ds -n openshift-monitoring NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE node-exporter 3 3 3 3 3 kubernetes.io/os=lin…

【Prometheus】ExporterをIP指定でHTTP接続で監視先に追加する流れ

はじめに PrometheusではPull型のメトリクス監視としてPrometheus.yamlに以下形式でTargetを記載することで scrape_configs: - job_name: 'node_exporter' static_configs: - targets: targethost:9100メトリクス収集先を追加できますが、それらをOpenshift…

【Openshift/Prometheus】prometheus.yamlに設定を加えることでスクレイプ構成を変更する

やりたいこと Operator版のPrometheusにて利用されているスクレイプ構成をデフォルト状態から変更する。 尚、デフォルト構成ファイルの実体はPrometheusのPodが展開されているnamespaceのsecretで定義されている。 環境情報 quay.io/prometheus/prometheus u…

【Kubernetes】PodがEmptyDirで使用しているディスク領域を確認する

やりたいこと Podにて以下のようにemptyDirを利用している場合に volumeMounts: - mountPath: /data name: storage-volume volumes: - emptyDir: {} name: storage-volume 同領域のディスク利用サイズを確認する。 環境情報 $ kubectl version Client Versio…

【Kubernetes】base64で暗号化されているSecretをoc extractコマンドで取得する

やりたいこと base64で暗号化されているSecretをコマンド一発で表示させる。 環境情報 $ oc version Client Version: 4.6.X Server Version: 4.6.X Kubernetes Version: v1.19.X やり方 以下のようなSecretを対象とした時に $ kubectl describe secret grafa…

【Istio/ingressgateway】ClusterIPとVirtualServiceを紐付ける流れ

はじめに Istioをインストールするとロードバランサとして外部向けのServiceが展開され、そこを経由して各Serviceに割り振ることができます。 今回は自前のIngress経由ではなくistio-systemにできているingressgateway経由してClusterIPへのアクセスを通す流…

【Kubernetes/stern】Deploymentに紐づくPodのログを一気に確認するツール

はじめに Deploymentを単純にサービスに紐づけている場合はどのPodに通信が流れるかは判断できないため、ログ調査をする場合は各Podを選定しながら $ kubectl logs PODNAMEにてログを標準出力に出して確認しますがこれは時に面倒です。そんな時に重宝するツ…

【Istio】既存のnamespaceにistio-injection=enabledを付与する

確認したこと 既に存在する名前空間に対して自動的にサイドカーが付与される設定を行った瞬間に $ kubectl label namespace xx istio-injection=enabled全Podにそれらが反映させるかを確認する。 環境情報 IKS v1.18.13 Debian GNU/Linux 9 istio-1.8.1 尚、…

【LogDNA/API】curlで取得したタイムスタンプを時刻データに変換するワンライナー

はじめに LogDNAではAPIをcurlコマンドで叩くことでCUIで情報を扱えます。 しかしデフォルトでは時間情報がUNIXタイムスタンプなのでそれを日付情報に変換しながら情報を簡易的に出力するワンライナーを作成しました。 環境情報 GNU bash, version 4.4.12(3)…

【Kubernetes】externalNameでnamespaceを超えたServiceと接続する

やりたいこと ある名前空間にいるPodから別の名前空間にいるServiceに対して通信を発生させる。例として以下のサービスに対して $ oc get service -n openshift-monitoring NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE... node-exporter ClusterIP None <none> </none>…

【ICCR】sysdig/secure-inline-scanでThe login credentials are not valid, or your IBM Cloud account is not activeと出るエラー

事象 自前でアップロードしたICCRレジストリのイメージにSysdigSecureのスキャンを利用するも # docker run --rm quay.io/sysdig/secure-inline-scan:2 jp.icr.io/xx/xx:1.2 --sysdig-token xx --sysdig-url https://jp-tok.monitoring.cloud.ibm.com/以下の…

【IBMCloud】SysdigSecureのイメージスキャンをdocker経由で利用する

はじめに IBM CloudではIBM Cloud Monitoring with Sysdigの機能の中で「Sysdig Secure on IBM Cloud」が利用でき、コンテナイメージの脆弱性が確認できます。以下記事ではGUI上からそれらを実施しましたが 今回はCUIでそれらを実施してみました。 環境情報 …

【Istio/Kubernetes】Kialiでサービス メッシュの稼働状況を可視化する

はじめに サービスメッシュを担うOSSであるIstioですが、アドオンとしてKialiをクラスターにインストールできます。 本記事では実際にサンプルプログラムをKialiで可視化した流れについて記載しました。 環境情報 IKS v1.18.13 Debian GNU/Linux 9 istio-1.1…

【Gitlab】プライベートリポジトリを新規作成してローカルからpushする

はじめに 以下の手順で用意したGitlabに新規リポジトリを作成し、ローカルからファイルをpushして配置する流れについて記載しました。 環境情報 OpenShift Container Platform 4.5 GitLab 14.1.0-ee .. EE 初期設定 Gitlabはデフォルトだと"Git clone URL"が…