(O+P)ut

アウトプット



(O+P)ut

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

IT-DevOps

【Openshift】dataSourceによるPVC指定のバックアップがPending状態となる事象

事象 作成済のPVCに対して $ oc get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE test-data Bound pvc-test-73e902635620 1Gi RWO XX ...pvc.spec.dataSource(RESOURCE: dataSource )を利用してクローンコピーを作成するもPVが作成さ…

【Prometheus/Kubernetes】Service側に記載するannotationsについて

はじめに Prometheusはメトリクス収集対象を静的に記載して扱うこともできますが ServiceDiscoveryを利用すれば対象の自動的な検出が可能です。本記事ではKubernetesのServiceを利用してメトリクスを収集する際にマニフェストに記載する以下のアノテーション…

【Kubernetes】kubeletを停止したNodeは自動的にNotReadyとなる

確認したいこと WorkerNode上で動作するkubeletプロセスが停止した場合にNodeとしてどのように見えるのか。尚、以下のようにMasterNodeとなっているNode上でkubeletを停止させることで事象を確認する。 # kubectl get node NAME STATUS ROLES AGE VERSION te…

【Kubernetes】特定ユーザに対してkube-apiserverのAudit機能を有効にする

はじめに KubernetesのAPIサーバには監査機能があり、時系列情報として各アクティビティをテキストファイルとして吐き出すことが可能です。本記事ではkubeadmでインストールしたNodeにてauditログを出力する設定を行い、その中でも特にkube-adminが行った操…

【Kubernetes】RBACにおけるget,list,watchの違いを実機で確認する

はじめに KubernetesではRoleとUser/ServiceAccountを紐付けることで権限管理ができますが、その中で get list watch という状況照会系の似たverbが存在し、それぞれに役割が異なります。本記事ではgetのみを与えた場合、listのみを与えた場合、watchのみを…

【Kubernetes】kube-proxy停止時はServiceとPodのIPアドレスが新たに紐づかなくなる

はじめに KubernetesではServiceのIPアドレスとPodのIPアドレスの紐付けをDNSではなくkube-proxyが担っています。つまり、kube-proxyが動作しているおかげでEndpointの数が増減しても、Serviceさえ指定すればコンテナのIPを気にせず通信を行えます。本記事で…

【Kubernetes】Livenessによる再起動時にCrashLoopBackOffとなる事象

事象 Liveness Probeを入れて再起動させているPodがCrashLoopBackOffとなって起動してこない。 # kubectl get pod NAME READY STATUS RESTARTS AGE liveness-exec 0/1 CrashLoopBackOff 7 (2m22s ago) 13m尚、describeで詳細メッセージを見ると下記のメッセ…

【Kubernetesr】Nodeに対してdrainを行うもPodが起動しつづける

事象 KubernetesのNodeに対してdrainコマンドを押下するも $ kubectl drain worker01以下のようなメッセージが標準出力に表示された上で node/worker01 cordoned ... error: unable to drain node "worker01", aborting command... There are pending nodes …

【Kubernetes】新規ユーザのClusterアクセス用にSSL証明書を用意する流れ

はじめに Kubernetesクラスターへのアクセスにてデフォルトではkubernetes-adminというユーザにclient-certificate-dataとclient-key-dataが与えられて認証しています。今回は新規ユーザを用意した場合にclient-certificate-dataとclient-key-dataを用意する…

【Kubernetes】Calicoインストール時に導入されるIPPoolとは?

はじめに KubernetesのCalicoを選択した際、インストール時に自動で生成されるippool。 本記事ではippoolの役割とその動きについて、kubeadmでインストールしたクラスターを例に分かりやすく解説しました。 環境情報 kubectl v1.23 docker.io/calico/kube-co…

【Kubernetes/Docker】exec: sh : executable file not found in $PATHとなっているコンテナの中に入る

やりたいこと 以下のようにKubernetes/Docker経由で中に入れないコンテナに入りたい。 # kubectl exec -it coredns-xx sh -n kube-system kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- …

【Kubernetes/Dashboard】ダッシュボードにToken認証でログインする

やりたいこと kubernetesui/dashboardにおいてToken認証機能をオンにする。 尚、以下でダッシュボード機能自体はインストール済とする。 # kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml 環…

【Kubernetes/Docker】コンテナイメージからcontainerStatuses.imageIDを取得する

やりたいこと Pod上にて以下のように格納されているimageIDをコンテナイメージからdockerコマンドで取得する。 $ kubectl get pod xx -n -o jsonpath='{.status.containerStatuses[].imageID}' xx@sha256:XX 環境情報 Kubernetes 1.23 docker version 1.13 …

【Istio】istiod停止下ではError creating: Internal error occurredでPodが起動しない

事象 Istioのコントロールプレーンである以下のDeploymentを停止した場合に $ oc scale deployment/istiod-basic --replicas=0 -n istio-system deployment.apps/istiod-basic scaledIstiodで管理しているnamespaceのPodが正しく再起動されない。 $ oc get d…

【Istio】DestinationRuleで設定した相互TLSをPeerAuthenticationで上書きする

はじめに 相互TLS(mTLS/mutual-TLS)とは、サーバ証明書による通常のTLS サーバ認証に加えてクライアント側の証明を行う機能です。 サービスメッシュを担うIstioでは同設定をDestinationRuleとPeerAuthenticationで行えますが、PeerAuthenticationの設定内…

【Istio/Virtualservice】Headerのブラウザ情報を用いてトラフィック管理を行う

はじめに Istioが持つTraffic Management機能にて、 Virtual ServiceとDestination Ruleを組み合わせることで異なるバージョンのアプリへのトラフィックの割合を指定することが可能となります。本記事ではUser-Agentを元にGoogleChormeとInternetExplorerの…

【Istio】Virtualservice/DestinationRuleでPodへの通信割合を管理する

はじめに Istioが持つTraffic Management機能にて、 Virtual ServiceとDestination Ruleを組み合わせることで異なるバージョンのアプリへのトラフィックの割合を指定することが可能となります。本記事では実際にv1のPodに80%、v2のPodに20%のトラフィックを…

【Istio/Openshift】ServiceMeshOperatorのistio-proxyログを出力させる

やりたいこと Red Hat OpenShift Service Mesh(2.1.0-0 provided by Red Hat, Inc)Operatorを利用して付与されるistio-proxy(Envoy)を通過するhttp accessをログとして表示させる。 環境情報 Openshift v4.6 Red Hat OpenShift Service Mesh(2.1.0-0 pr…

【Openshift/IngressOperator】Routeを利用してServiceに割り振られる仕組み

はじめに Red Hat OpenShiftではIngress Operatorによって外部からのアクセスを可能にしています。 同コンポーネントはKubernetesにはデフォルトで付属している要素ではないので、IBM CloudでオーダーしたOpenshiftの環境にて本項目について調査してみました…

【Istio/Openshift】ServiceMeshOperatorを利用してistioサイドカーを付与する

はじめに Red Hat OpenShift Service Mesh(2.1.0-0 provided by Red Hat, Inc)Operatorにて特定のnamespaceにIstioのサイドカーを付与する流れについて記載しました。 環境情報 Openshift v4.6 Red Hat OpenShift Service Mesh(2.1.0-0 provided by Red H…

【Openshift】may not be installed in the same project/namespace as the operatorというエラー

事象 Red Hat OpenShift Service Mesh(2.1.0-0 provided by Red Hat, Inc)OperatorにてCreate ServiceMeshControlPlaneをGUI上で行うも以下エラーで失敗する。 Danger alert:An error occurred admission webhook "smcp.validation.maistra.io" denied the…

【Kubernetes】Podにlimitsを付与してCPUスロットリングを発生させる

はじめに Kubernetesでは以下のようにlimitsというフィールドがあり $ kubectl explain pod.spec.containers.resources.limits KIND: Pod VERSION: v1 FIELD: limits <map[string]string>メモリやCPUリソースに制限を与えることができます。今回はその中でもCPUに焦点を当て、Po</map[string]string>…

【Kubernetes】kubectl debug nodeでPodが起動しない事象

事象 KubernetesにてNodeで任意のコマンドを打つためにkubectl debug nodeを実施するも $ kubectl debug node/test_node -it --image=busybox Creating debugging pod node-debugger-test_node-b4gg2 with container debugger on node test_node.上記からプ…

【IBMCloud】SysdigのAPIを利用するもUnauthorizedエラーと出る事象

事象 SysdigのAPIを利用するも # docker run --rm quay.io/sysdig/secure-inline-scan:2 xx --sysdig-token xx --sysdig-url https://jp-tok.monitoring.cloud.ibm.com以下のエラーで権限エラーとなる。 ERROR: Invalid token for specific Sysdig secure en…

【fluetnd/tdagent】ログ収集コンテナを再起動してもログが欠落しない理由

はじめに FluentdとはOSSのログ収集ツールで、サーバだけではなくログ収集コンテナとしてKubernetesやOpenshiftの上で動くPodのログをサーバに転送するという使われ方もよくしています。一方で気になるのはFluentd自体が停止してしまった場合のログの欠落。 …

【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にはファイルシステムが一定以上になるとガベージコレクションを行う機能が存在します。本記事はコンテナイメージ領域の逼迫に伴い発動するイメージの…


他の記事を読む