パブリッククラウド上でもkubeadm使ってカスタマイズ可能なKubernetesを欲しい方向けの記事
Azureのサブスクリプションを持っている方向けに、KubernetesをKubeadmを使ってインストールする手順を記載。(非AKS)
Azure上にUbuntuのVMインスタンスを3つ用意し、それぞれKubernetes Master×1、Kubernetes Worker×2として構成。
前提事項としてaz
コマンドの実行元はwsl2 Ubuntuであること、およびAzureの …
Microsoft謹製の画面分割ツールFancyZonesを使う
Microsoft謹製の画面分割ツールFancyZonesが結構便利だったので紹介します。
1年以上在宅している人々は大概デカい外付けディスプレイを導入していることだろう。ただディスプレイをうまいこと使いこなせず、私の場合はだいたいこんな感じで散らかっていってしまうことがほとんどだった。Windows+方向キーで四方に…というのは知っていてもチャットツールやターミナルは縦長にしたいし今編集しているブラウザは正面に…という感じ。
そんな時友人が購入したLGのディスプレイには分割のための専用ソフトウェアがついていることを自慢された。悔しくて似たようなものを探していたらMS謹製のFancyZonesたるものがあるじゃないか。ということで入れて使っています。
こちらの公式GitHubページから最新版をインストール。PowerToysというツールの上で今回のFancyZonesが動く感じになる。なのでPowerToysをインストール。
OpenShiftのCluster Operatorのトラブルシューティング方法、Redsocks透過プロキシを少しだけ含む
最初に言っておくとこれは私のLab環境で起きたことの対処であるため汎用性・再現性は非常に低い。OpenShift Insight OperatorがDegraded Statusになる場合の対処。
Falling
になるoc get co
の結果でDEGRADED: True
と表示される$ oc get co
NAME …
vSphere with Tanzu on NSX-Tの環境をNested ESXiでハマりながら作った記録。
過去三回にわたり概要、NSX-T編、ワークロード管理有効化編を紹介。今回はvSphere PodおよびTanzu Kubernetes Clusterまわりでハマったことを書いていきます。
SupervisorControlPlaneVMのデプロイ後、Tanzu用kubectlプラグインが含まれたkubectlのダウンロードページにアクセスすることが可能になる。
アクセスできない原因は結果から言うと凡ミスで、自動で払い出されるIPアドレスを既に別のマシンで使っていたためにアクセスができなかっただけ。ワークロード管理有効化時に指定するWorkload Network
のIngress …
vSphere with Tanzu on NSX-Tの環境をNested ESXiでハマりながら作った記録。
過去二回にわたり概要とNSX-T編を紹介。前回ハマったこと①を紹介したので今回は②以降の今回は実際にハマったポイントをリストしていきます。今回はワークロード管理有効化編。
NSX-Tのセットアップが完了し、いよいよTanzuっぽい部分(SupervisorControlPlaneVMのデプロイ)をいざ進めようとすると、クラスターの検証の部分で以下のエラー。
Cluster domain-c8 is managed by vSphere Lifecycle Manager. It does not support Workload Management with NSX
vSphere with Tanzu on NSX-Tの環境をNested ESXiでハマりながら作った記録(NSX-T編)
このシリーズの概要などは前回の投稿に記載。今回は具体的なハマりどころ、特に一番時間をかけたNSX-T部分について。
とりあえず構築手順を進めていても前提知識がないためにサンプルのネットワーク構成をどう自分の環境に当てはめていいのか最初はまったくわからなかった。マニュアルちゃんと読め(自戒)。これから始める方は最低限以下を確認してなんとなくでもイメージを持った上で始めるとよいと思う。
こちらに色々書いてある。要はvSphere NetworkとNSX-Tのどちらかを利用できる。今回はNSX-Tを前提に環境を組む。
こちらはNSX-T構成におけるトポロジーの説明。今回はリソース …
vSphere with Tanzu on NSX-Tの環境をNested ESXiでハマりながら作った記録
勤務している会社はなんだかんだVMwareと仲が良く、お客様からもVMware製品のインテグレーションに強いというイメージを持っていただいている事が多いので、Tanzu製品の引き合いも最近多くいただく。そんな中自分自身にもそろそろTanzuの波が押し寄せてきたので検証環境でもサクッとつくったろかと思ったところ色々とハマったのでその格闘の記録をここに記しておこうと思う。
現在別用途で使っている1台のESXiサーバを使ってNSX-TおよびvSphere with Tanzuを動かしたい。先人の勧めによりNested ESXi環境でやることにした。私の場合は1台のサーバにESXiをインストールし、その上にNested ESXiサーバを構築する。
(青色の箱はもとから存在していたもの、黄色の箱がTanzu構築にあたり新たに作ったもの)
大いに参考にしているのはGo Watanabeさんのブログ。これは自宅vSphere with Tanzu勢のバイブルと言っても良い。基本的にこちらのブログを参考に構築をトライした結果になるが、自分の環境との差異をどう考えるか、ありがちなミスなどについて書いていくのが本ブログの目的。
記念すべき2020年12月16日、2度目の試験でCKS試験に合格した。合格ラインは67%、一度目の試験は45%。二度目の試験は78%でクリアした。試験の準備、特に試験のフィードバックや試験に対する準備などを共有していこうと思う。
CKA/CKADと同じくリモート/ハンズオン/Webターミナル/試験監督にカメラ越しに見守られながらの試験ということは変わらない。
ただ今回の試験でこれまでのCKA/CKADなどと違うなと感じたのは以下の点。
source <(kubectl completion bash)
, alias k=kubectl
などはあらかじめ~/.bashrc
に設定されている。今回は自宅から受験。ドアが閉め切れる部屋であれば多少の家具などがあっても大丈夫な模様(私の部屋の場合は子供用ベッドやおもちゃタンスみたいなのがあったけど特に問題なし)。公式のインストラクションはこちら。
DISCOUNT CODE: CKS-KILLER-SHELL
1回目の試験時に購入。この本がないと今の私はいません。というくらい名著。広範囲なトピックに対して要点を非常によくまとめてくれていてテーマの割りにさらっと読めるしあとで細かいところ読み返しても学びがある。「Kubernetesはさわったけどセキュリティ?」って人はここから始めると良いと思う。
分量が多くなくさほど時間がかからずに読める。カリキュラムをほどよくカバーしていてかつ実務的な対策(Yamlファイルの内容やコマンド等)も載っている。公式サイトの補足的に使ったりすると理解が深まる。
Aquasecurityのサイト経由でユーザ情報等を提供すると無料で読めるようである。
https://info.aquasec.com/kubernetes-security
何の変哲もないシングルマスターの1台クラスタだけど一応書いておく。APIサーバの設定を色々と変えることが多いのでマネージドのK8sクラスタよりもkubeadmで作ったクラスタの方が良いと思う。個人的には試験勉強に際してはマスターの冗長化は不要かと。
$ k get node -owide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
kubeadm-k8s-1 Ready master 65d v1.19.2 10.0.1.132 <none> Ubuntu 18.04.2 LTS 4.15.0-123-generic containerd://1.3.7
低レイヤの話も含めて学ぶことができたこと、Kubernetesのセキュリティ対策について一定の基準を持てるようになったことが試験を通じて得た大事なことだなと実感している。またセキュリティは終わりのないテーマなのでオッサンのライフワークにぴったりです。ちょっと早いけど2021年も引き続きやっていく所存。
AppArmorを使ってコンテナが実行するシステムコールを制限する
AppArmorはLinuxカーネルセキュリティモジュールであり、標準のアクセス許可(Linuxユーザおよびグループベースのアクセス許可)に加えてプログラムのアクセスを限られたリソースに制限するための機能。カーネルが管理するリソース(ファイルシステム、プロセス間通信、メモリ等の記憶領域、ネットワーク、デバイスドライバ等)を特定のプログラムまたはコンテナに対してプロファイルを通じてアクセス許可の制御を行う。
プロファイルのモードは Enforcing
(許可されていないリソースへのアクセスをブロックする)、 Complain
(許可されていないリソースへのアクセスの報告)のどちらかで動作させることができる。
kube-apiserverの監査ログを取ってみる
KubernetesのAPIサーバで監査ログ(Audit)を有効化することでユーザのアクティビティや不正な行為を検知することができるようになる。ただしチューニングや保管先の管理は大変。
監査ログはJson形式で指定したファイル、Webhook等で出力が可能。以下はaudit-test-pod
というPodにkubectl exec
でログインした際の監査ログ。
誰が・いつ・どのリソースに対して・何をしたかをどのレベルで保存するか等が詳細に記録される。
{"kind":"Event","apiVersion":"audit.k8s.io/v1","level":"Metadata","auditID":"15473afa-482e-419e-97b6- …
Work for Hewlett Packard Enterprise as Solution Architect / Write on IT / Infrastructure / Cloud Native / Kubernetes / OpenShift / Japanese|English