(O+P)ut

アウトプット



(O+P)ut

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

DevOps

【Openshift】Gitlabのインストールから初回ログインまでの流れ

はじめに GitlabとはGitHubライクのGitリポジトリで自前でGit環境を用意する際に利用できるソフトウェアです。 公式サイトにはサーバやKubernetesに展開する手順が書かれていますが、Openshiftでは手順が存在しなかったので今回はOpenshift環境にデプロイし…

【Tekton/R言語】PipelineとTaskの関係をgrVizで可視化する

やりたいこと Pipeline内に記載されているTaskを抽出してGUI上に可視化する。 尚、可視化にはR言語のgrVizを利用。 環境情報 tektoncd:v0.14.2 R.version:4.1.0 やり方 以下のスクリプトを実行すると #!/bin/bash kubectl get pipeline -n xx | grep -v NAME…

【Openshift/Grafana】デフォルトのPrometheusをDatasourceとして利用する

はじめに OpenShiftをインストールした時点で監視を担うPrometheusがopenshift-monitoringネームスペースにデプロイされており、同Prometheusのデータを可視化するGrafanaもデフォルトでインストールされています。 $ oc get deployment -n openshift-monito…

【Tekton/Kubernetes】curlコマンドをEventListenersに送ってPipelineをキックする

はじめに TektonではEventlistener用のPodにリクエストを送ることでTriggerTemplatesをベースにしたPipelineを起動することが可能です。 CICDをキックする方法にGithubへのpushなどはありますが、今回は最もシンプルにEventListenersにcurlコマンドを直接送…

【Tekton/Kubernetes】TriggerTemplateとTriggerBindingをカスタマイズする際の考え方

はじめに Tektonのサンプルプログラムを動かせばTrigger経由でPipelineが起動できますが、TriggerTemplateの記載方法などが分かりにくいです。本記事では初学者の方向けに、PipelineをPilelineRunで起動できた後に、同PiplelineをEventListener経由で起動す…

【Kubernetes】Failed to watchとエラーが出た際のServiceAccountへの権限追加

事象 Pod(TektonTrigger)を起動した際に以下ログが出力して権限エラーのリスタートが起きている。 $ kubectl get pod NAME READY STATUS RESTARTS AGE tt-test-664dcbd49d-jd2wx 0/1 Running 3 Xs尚Podのログを確認するとServiceAccountに付与している権限…

【Tekton/Kubernetes】PipelineResourceで指定したGithubからcouldn't find remote refとなるエラー

事象 DockerBuildを行うTaskを実行するも /tekton/tools/entrypointのGithubからfetch処理を行う箇所で失敗し、以下のエラーが出力される。 {"level":"error","ts":1625897499.5278947,"caller":"git/git.go:54","msg":"Error running git [fetch --recurse-…

【Git】git fetchをするも fatal: couldn't find remote ref xx と出る事象

事象 git pull後に以下コマンドでgit fetchでリモートリポジトリの情報取得に行くも $ git fetch --recurse-submodules=yes --depth=1 origin --force master以下のエラーとなる。 fatal: couldn't find remote ref master 環境情報 $ git --version git ver…

【Openshift/Grafana】GrafanaOperatorの初期ユーザー情報を確認する

やりたいこと OpenshiftのOperatrHubよりインストールしたGrafanaへのログイン情報を確認したい。 環境情報 image: quay.io/integreatly/grafana-operator:v3.10.2 確認方法 以下のコンフィグマップの中の $ oc get cm NAME DATA AGE grafana-config 1 ...se…

【Openshift/Prometheus】自前で用意したServiceMonitorでエンドポイントとの通信をTLSにする

やりたいこと Openshiftにデフォルトで導入されているPrometheusに対して固有アプリのServiceMonitorからポーリングする際のデータをTLSで暗号化したい。 環境情報 $ oc get prometheus --all-namespaces NAMESPACE NAME VERSION REPLICAS AGE openshift-mon…

【Tekton/Kubernetes】デプロイメントを作成する"deploy-application"を読み解く

はじめに Tektonのサンプルコードとして提供される以下のコードを実際に動かし、ログを見ることで内部の動きを調査しました。 apiVersion: tekton.dev/v1alpha1 kind: Task metadata: name: deploy-application spec: inputs: resources: - name: git-source…

【IBMCloud】SysdigSecureでコンテナイメージの脆弱性をスキャンする

はじめに IBM CloudではIBM Cloud Monitoring with Sysdigの機能の中で「Sysdig Secure on IBM Cloud」が利用でき、コンプライアンスの問題を確認するだけでなくネットワークセキュリティに関する情報を可視化することも可能です。本記事ではOpenshift/Kuber…

【OpenShift/SCC】Podで起動しているアプリケーションをroot権限で実行する

やりたいこと Podを起動するもログに Permission deniedと表示されるため、特権ユーザで起動したい。 環境情報 $ ibmcloud oc cluster ls ... OK 名前 ID 状態 作成日 ワーカー ロケーション バージョン リソース・グループ名 プロバイダー X ... normal .. …

【OpenShift】Templateを利用してRocket.Chatをインストールする

はじめに OpenShiftではデフォルトで展開されているテンプレートの他に自分のプロジェクトにテンプレートを配置することができます。 本記事ではRocket.ChatをOpenshiftに構築する公式手順を参考に、テンプレートからリソースを生成する流れについて記載しま…

【IBMCloud】Sysdig Secureでネットワークトポロジーを確認する

はじめに IBM CloudではIBM Cloud Monitoring with Sysdigの機能の中で「Sysdig Secure on IBM Cloud」が利用でき、コンプライアンスの問題を確認するだけでなくネットワークセキュリティに関する情報を可視化することも可能です。本記事では既に同サービス…

【IBMCloud】Kubernetesクラスターの監視にSysdigをカタログから導入する流れ

はじめに IBM CloudのIKSに対してSysdigを導入することで簡単に監視環境を実装できます。 本記事ではブラウザ上からSysdigのインスタンスを作成し、Kuberneteクラスターに対するエージェントの導入をコマンドラインから実施しました。 環境情報 $ ibmcloud v…

【Tekton/Kubernetes】Gitからコードを取得してビルドする"build-image-from-source"を読み解く

はじめに Tektonのサンプルコードとして提供される以下のコードを実際に動かし、ログを見ることで内部の動きを調査しました。 apiVersion: tekton.dev/v1alpha1 kind: Task metadata: name: build-image-from-source spec: inputs: resources: - name: git-s…

【OpenShift】OperatorHubからGUIでOperatorを導入する手順

はじめに OpenShiftではOpenshift Webコンソールという高機能なGUIが提供されています。 それを利用することで、マウス操作にてリソースの生成や確認、そしてOperatorのインストールが行えます。本記事ではマウス操作でPrometheusOperatorをインストールする…

【Kubernetes】セキュリティ監査ツールFalcoをHelmを用いてインストール/稼働確認を行う

はじめに システムコールやKubernetes監査イベントをキャプチャし、クラスタやアプリケーションへの不正な操作を検出するツールに「Falco」があります。本記事ではKubernetesクラスターに同ツールをインストールし、実際にアクティビティのログを確認しまし…

【Kubernetes/Prometheus】Nginxが動作するPodへのリクエスト数を監視する

はじめに PrometheusではExporterと呼ばれるオブジェクトが監視対象からリソースを取得することでデータを一元的に管理することができます。本記事ではNginxを例にExporterを準備し、PrometheusからNginxのリソースを確認する流れについて記載しました。 尚P…

【Kubernetes】Prometheusを利用してWorkerNodeのリソース情報を監視する

はじめに Prometheus(プロメテウス)はメトリクスの監視を行うモニタリングツールで、Kubernetesクラスタの監視においてもCNCFのプロジェクトとして採用されています。本記事ではKubernetesクラスターのWorkerNodeのCPU情報をPrometheusを通じてグラフ化し…

【Lift&Shift】オンプレミスのアプリケーションをコンテナ化する流れ

はじめに オンプレミス(非クラウド)のシステムをそのままクラウドに乗せる流れをリフト(Lift)、アーキテクチャの変更を加える流れをシフト(Shift)と言ったりしますが本記事ではその流れを参考程度に解説しました。尚、シフトとリフトの意味は以下。 コ…

【OpenShift】oc adm policy add-scc-to-userでの変更とClusterRoleBindingの関係

はじめに サービスアカウントにSCC (SECURITY CONTEXT CONSTRAINTS)を付与し、そのサービスアカウントをPodに紐付けることでPodの権限を変えることができます。具体的にはサービスアカウントを作成後、以下構文でSCCとServiceAccountを指定して紐付けます…

【OpenShift】oc set volumesでPVCをDeploymentに付与する動き

はじめに KubernetesでもPVCはありますが、以下のようにPod側のYAMLにて宣言型で利用するのが一般的です。 一方でOpenshiftでは手続き型のように$ oc set volume object_selection operation mandatory_parameters optional_parametersという構文でボリュー…

【OpenShift】podman/skopeoで"Failed to pull image"を解消する

事象 Podの起動に失敗していてoc get eventを見ると「Failed to pull image」としてエラーが出ている。 $ oc get event LAST SEEN TYPE REASON OBJECT MESSAGE ..Normal Scheduled pod/hoge-69676884f8-ssfk9 Successfully assigned xx/hoge-69676884f8-ssfk…

【Tekton/Kubernetes】TektonDashboardを利用する流れのチュートリアル

はじめに Tektonの公式ドキュメントにある「Documentation / Dashboard」をKubernetes環境で実施(Tutorial)した結果をメモ。 Kubernetes環境はIBM Kubernetes Serviceを利用し、ダッシュボードをブラウザで開く端末はWindowsを利用しました。 環境情報 tek…

【Tekton/Kubernetes】PipelineRunでPipelineを実行する流れのチュートリアル

はじめに Tektonの公式ドキュメントにある「Documentation / Getting Started with Pipelines」をKubernetes環境で実施(Tutorial)した結果をメモ。 Kubernetes環境はIBM Kubernetes Serviceを利用しました。以下の続きで実施しています。 環境情報 tekton:…

【Tekton/Kubernetes】TaskRunでTaskを実行する流れのチュートリアル

はじめに Tektonの公式ドキュメントにある「Documentation / Getting Started」をKubernetes環境で実施(Tutorial)した結果をメモ。 Kubernetes環境はIBM Kubernetes Serviceを利用しました。尚、本記事は「echo "Hello World!"」とだけ標準出力するTaskをT…

【Helm入門】Kubernetesのパッケージ管理マネージャーを利用する流れ

はじめに HelmとはKubernetes上にてリソース定義群をパッケージとして管理するツールですが、本記事ではWindows環境(Cygwin)にてパッケージを利用したデプロイを実施する流れについて初学者向けに分かりやすく記載しました。 環境情報 kubectl : v1.19.3. …

【Kubernetes】Kustomizeのbase/patchでYAMLを管理する流れ

はじめに Kustomizeはkustomizationファイルと呼ばれるYAMLを用いてKubernetesリソースを管理する方法で、共通化部分のYAMLをbaseディレクトリ、そこからの差分をpatchとして管理することでYAMLの冗長な部分をカットして扱うことができます。本記事では実際…