IT-DevOps
事象 作成済の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はメトリクス収集対象を静的に記載して扱うこともできますが ServiceDiscoveryを利用すれば対象の自動的な検出が可能です。本記事ではKubernetesのServiceを利用してメトリクスを収集する際にマニフェストに記載する以下のアノテーション…
確認したいこと WorkerNode上で動作するkubeletプロセスが停止した場合にNodeとしてどのように見えるのか。尚、以下のようにMasterNodeとなっているNode上でkubeletを停止させることで事象を確認する。 # kubectl get node NAME STATUS ROLES AGE VERSION te…
はじめに KubernetesのAPIサーバには監査機能があり、時系列情報として各アクティビティをテキストファイルとして吐き出すことが可能です。本記事ではkubeadmでインストールしたNodeにてauditログを出力する設定を行い、その中でも特にkube-adminが行った操…
はじめに KubernetesではRoleとUser/ServiceAccountを紐付けることで権限管理ができますが、その中で get list watch という状況照会系の似たverbが存在し、それぞれに役割が異なります。本記事ではgetのみを与えた場合、listのみを与えた場合、watchのみを…
はじめに KubernetesではServiceのIPアドレスとPodのIPアドレスの紐付けをDNSではなくkube-proxyが担っています。つまり、kube-proxyが動作しているおかげでEndpointの数が増減しても、Serviceさえ指定すればコンテナのIPを気にせず通信を行えます。本記事で…
事象 Liveness Probeを入れて再起動させているPodがCrashLoopBackOffとなって起動してこない。 # kubectl get pod NAME READY STATUS RESTARTS AGE liveness-exec 0/1 CrashLoopBackOff 7 (2m22s ago) 13m尚、describeで詳細メッセージを見ると下記のメッセ…
事象 KubernetesのNodeに対してdrainコマンドを押下するも $ kubectl drain worker01以下のようなメッセージが標準出力に表示された上で node/worker01 cordoned ... error: unable to drain node "worker01", aborting command... There are pending nodes …
はじめに Kubernetesクラスターへのアクセスにてデフォルトではkubernetes-adminというユーザにclient-certificate-dataとclient-key-dataが与えられて認証しています。今回は新規ユーザを用意した場合にclient-certificate-dataとclient-key-dataを用意する…
はじめに KubernetesのCalicoを選択した際、インストール時に自動で生成されるippool。 本記事ではippoolの役割とその動きについて、kubeadmでインストールしたクラスターを例に分かりやすく解説しました。 環境情報 kubectl v1.23 docker.io/calico/kube-co…
やりたいこと 以下のように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] -- …
やりたいこと kubernetesui/dashboardにおいてToken認証機能をオンにする。 尚、以下でダッシュボード機能自体はインストール済とする。 # kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml 環…
やりたいこと Pod上にて以下のように格納されているimageIDをコンテナイメージからdockerコマンドで取得する。 $ kubectl get pod xx -n -o jsonpath='{.status.containerStatuses[].imageID}' xx@sha256:XX 環境情報 Kubernetes 1.23 docker version 1.13 …
事象 Istioのコントロールプレーンである以下のDeploymentを停止した場合に $ oc scale deployment/istiod-basic --replicas=0 -n istio-system deployment.apps/istiod-basic scaledIstiodで管理しているnamespaceのPodが正しく再起動されない。 $ oc get d…
はじめに 相互TLS(mTLS/mutual-TLS)とは、サーバ証明書による通常のTLS サーバ認証に加えてクライアント側の証明を行う機能です。 サービスメッシュを担うIstioでは同設定をDestinationRuleとPeerAuthenticationで行えますが、PeerAuthenticationの設定内…
はじめに Istioが持つTraffic Management機能にて、 Virtual ServiceとDestination Ruleを組み合わせることで異なるバージョンのアプリへのトラフィックの割合を指定することが可能となります。本記事ではUser-Agentを元にGoogleChormeとInternetExplorerの…
はじめに Istioが持つTraffic Management機能にて、 Virtual ServiceとDestination Ruleを組み合わせることで異なるバージョンのアプリへのトラフィックの割合を指定することが可能となります。本記事では実際にv1のPodに80%、v2のPodに20%のトラフィックを…
やりたいこと 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…
はじめに Red Hat OpenShiftではIngress Operatorによって外部からのアクセスを可能にしています。 同コンポーネントはKubernetesにはデフォルトで付属している要素ではないので、IBM CloudでオーダーしたOpenshiftの環境にて本項目について調査してみました…
はじめに 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…
事象 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では以下のようにlimitsというフィールドがあり $ kubectl explain pod.spec.containers.resources.limits KIND: Pod VERSION: v1 FIELD: limits <map[string]string>メモリやCPUリソースに制限を与えることができます。今回はその中でもCPUに焦点を当て、Po</map[string]string>…
事象 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.上記からプ…
事象 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…
はじめに FluentdとはOSSのログ収集ツールで、サーバだけではなくログ収集コンテナとしてKubernetesやOpenshiftの上で動くPodのログをサーバに転送するという使われ方もよくしています。一方で気になるのはFluentd自体が停止してしまった場合のログの欠落。 …
事象 KubernetesにてPodの起動を試みるもステータスがContainerCreating/CrashLoopBackOffで起動に失敗し、Event欄を見ると以下のようなエラーが出ている。 Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 118s defa…
事象 Sysdigをインストールした仮想マシン(Linux)から以下アラートが発行されるも Subject : Host is down is Triggered on host.mac = ... Trigger : timeAvg(avg(uptime)): 0.0000 /sマシンは正常稼働している。 環境情報 $ /opt/draios/bin/dragent --v…
はじめに Dockerで行った以下の作業はPodmanだとより簡単に可能です。 本記事ではRHELにて特定コンテナを自動起動するための手順をメモしました。尚、ユーザはrootで実行しています。 環境情報 podman version 1.6.4 Red Hat Enterprise Linux Server 7.9 コ…
はじめに IBM Cloud Monitoringサービスに対してcurlコマンドを打つことでCUIベースで情報を取得できます。 今回はサンプルとしてホスト名と時間を指定してCPU情報を取得する流れについて記載しました。 環境情報 $ curl --version curl 7.55.1 (Windows) li…
はじめに Kubernetesクラスターにおけるコンテナ基盤はkubeletプロセスによって動作していますが、kubeletにはファイルシステムが一定以上になるとガベージコレクションを行う機能が存在します。本記事はコンテナイメージ領域の逼迫に伴い発動するイメージの…