Kubernetes
何使ってるの? Kubernetesにて、バージョン 1.20 以降ランタイムとしての Docker を廃止するという動きがありました。 それに伴いAKSやGKEもDockerを廃止し、新しいノードはデフォルトで containerd を使用する流れに。一方それってkubectlコマンドで確認で…
Okta? Okta、Inc.は、サンフランシスコに本社があるアイデンティティおよびアクセス管理会社とのこと。 同社はKubernetesのログイン周りのツールも出していて、それがOkta。OpenIDConnectに従い、RBACと結合することで認証周りをよしなにやってくれる模様。…
何が必要? こんな感じで権限紐付けがされている時に # kubectl describe rolebinding testrb Name: testrb Labels: <none> Annotations: <none> Role: Kind: Role Name: testrole Subjects: Kind Name Namespace ---- ---- --------- User testuser以下のRoleがあればex</none></none>…
ETCDの暗号化 保管しているデータが丸見えなのはよろしくないので暗号化しましょう・・という話。「kind: EncryptionConfiguration」というYAMLを作成した上でapiserver側にて--encryption-provider-config=/etc/kubernetes/etcd/ec.yamlを入れ込めばOK。ち…
Kubernetesの世界ではCoreDNSと呼ばれる機構があり、コンテナはこのCoreDNSに名前解決を依頼することでサービスのIPを知らなくても通信が行えます。そんなCoreDNSですが、実はコンテナの外(Node)からも利用できます。 環境情報 Kubernetes 1.23 Red Hat En…
Trivy? 同ツールはコンテナイメージの脆弱性診断ツールでGitHubから自由に利用できます。 もともとは日本で個人開発されていたようですが、今はAqua Security社が開発している模様。ユニークなのは、OSにインストールして使う形である点。Redhat系やDebian…
APIサーバに定期的に出る ログを見るとこんな感じで定期的に出てきます。 W0301 08:23:56.457841 1 watcher.go:229] watch chan error: etcdserver: mvcc: required revision has been compacted W0301 08:31:36.434391 1 watcher.go:229] watch chan error:…
rediness / livenessはkubeletが担当 コンテナの生き死にをハンドリングするLiveness Probe、Readiness Probeですが、これはMaster(kube-apiserver)が行うわけではないです。公式ページにも kubeletは、Liveness Probeを使用して、コンテナをいつ再起動す…
メモ 「kube-bench」というツールはインフラ観点でKubernetesクラスターを診断してくれるものですが、触ってみるとこれがまたよく出来ていたので試し打ち結果と共に紹介します。v1.23.2で試しています。 # docker run --pid=host -v /etc:/etc:ro -v /var:/v…
延々再起動 KubernetesのDashboard用のPodを見ると以下のように書かれていて起動に失敗している模様。 Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 46m default-scheduler Successfully assigned kubernetes-dash…
Podがリスタートしまくりで・・・ Podが異常終了しているので見に行くと以下のような状態でした。 # kubectl get pod -n kubernetes-dashboard NAME READY STATUS RESTARTS AGE dashboard-metrics-scraper-xx-77bs4 1/1 Running 0 24h kubernetes-dashboard-…
ダッシュボードでKubernetesの状態がみたい デフォルトでKubernetesのダッシュボードを展開すると、同Podにアクセスするも 表示するものがありません リソースがありません。 という状態です。理由としてはDeploymentにServiceAccountがあるも何も権限を持っ…
ロールバックする際に利用 DeploymentにrevisionHistoryLimitを設定して ReplicaSet のリビジョン数を制御することがありますが、ここのドキュメントを見ると This is set to the max value of int32 (i.e. 2147483647) by default, which means “retaining …
ログを見てみる 以下を実行すると $ kubectl delete pod xx pod "xx" deletedkubeletのログには以下。 Dec 9 21:06:40 kube-xx kubelet.log I1209 12:06:40.890715 9549 kubelet.go:1894] SyncLoop (PLEG): "xx", event: &pleg.PodLifecycleEvent{ID:"xx", T…
なにそれ? Kubernetesの公式ページを見ていると The Konnectivity service provides a TCP level proxy for the control plane to cluster communication と記載されているコンポーネントを発見。調査したところ、マスターノードとワーカーノードが通信する…
Podが起動しない Conditions: Type Status Reason ---- ------ ------ Progressing True NewReplicaSetCreated Available False MinimumReplicasUnavailable ReplicaFailure True FailedCreate OldReplicaSets: <none> NewReplicaSet: ... (0/1 replicas created) </none>…
やり方 ステータスの値が「Completed」のものを消す場合は以下。 $ kubectl get pods | awk '{if ($3 ~ /Completed/) system ("kubectl delete pods " $1)}' pod "xx" deleted pod "xx" deleted pod "xx" deletedちなみに適当に $ kubectl delete pod *とや…
事象 以下エラー発生。 $ kubectl get ns Unable to connect to the server: dial tcp [::1]:8080: connectex: No connection could be made because the target machine actively refused it. 原因 ホームディレクトリ配下に配置していた.kubeが消えていた。…
initContainersフィールドを使う initContainers: - name: before .. containers: - name : hoge ...ってな感じでコンテナを記載すれば先にbeforeのコンテナが動いてコマンド実行し終わってからhogeが動きます。 便利。
静的経路を確認したい よく打つにもかかわらずよく忘れるんですよね。 $ netstat -rnでIPアドレスがずら~っと出ます。逆にホスト名で見たい場合は $ netstat -rです。
Unable to connect api server 以下エラーメッセージ。 $ kubectl get ns Unable to connect to the server: failed to refresh token: oauth2: cannot fetch token: 400 Bad Request Response: {"errorCode":"BXNIM0408E","errorMessage":"Provided refresh…
pauseコンテナ kubectlコマンドでPodを調査しても出てこないコンテナですが、dockerコマンドで見るとpauseコンテナが大量にあります。 こいつは何者なのでしょうか? Pod環境の場所取り pauseコンテナはsandboxコンテナやinfraコンテナとも呼ばれる特殊なコ…
LoadBalancerが使いたい NodePortはPodが展開しているNodeのIPアドレスを打ち込む必要があるので、ロードバランサのような別IPに打てばよしなにPodに展開して欲しいものです。そのようなServiceとしてLoadBalancerがKubernetesではありますが、Cloudのように…
Podが起動失敗 error while running "VolumeBinding" filter plugin for pod 1": pod has unbound immediate PersistentVolumeClaimsというエラーメッセージ。 で、いろいろ調べているとPodを動かす時のコマンドにミスがありました。確かにボリュームをマウ…