2025年2月9日日曜日

local-path-provisioner

Kubernetesノードのローカルなディレクトリを使ってPV自動作成するプロビジョナーを行ってみる。

デプロイしてみる


1)local-path-storageをデプロイする。

kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml








2)ストレージクラスを確認





3)redisを入れてみる

helm install redis bitnami/redis \

  --set persistence.enabled=true \

  --set persistence.storageClass="local-path" \

  --set persistence.size=8Gi
















4)作成出来たことが確認できました。








5)PVCの作成状態を確認:







6)PVの確認状態を確認(自動生成されていることが確認できました。):






Redisの作成(helm)

 redisの導入をhelmで実施してみる(PVCを無効化した記載になる)

helm install my-redis bitnami/redis \

  --set architecture=replication \

  --set persistence.enabled=false \

  --set master.persistence.enabled=false \

  --set replica.persistence.enabled=false



上記、オプションについて:

architecture=replication
       → レプリカ構成 にする(デフォルトは standalone)
persistence.enabled=false
      → デフォルトのPVC作成を抑制(ただし、個別の master.persistence と replica.persistence の設定が優先される)
master.persistence.enabled=false
       → MasterのPVCを作成しない。
replica.persistence.enabled=false
      → ReplicaのPVCも作成しない。

MacでもLinuxのようにescキーで予測したい

 ~/.zshrcに以下の設定を追加:

bindkey -v  # viモードを有効にする

bindkey '^[' expand-or-complete



設定を反映するには:

source ~/.zshrc

Istio ingressGatewayの導入(2025)

 istioをダウンロードする




       

以下のコマンドを行う

istioctl install -set profile=default -y















以下、CRDを確認する















podの作成も確認(上記のコマンドで、自動生成されてるね。)







ingress gatewayを入れる


helm repo add istio https://istio-release.storage.googleapis.com/charts\nhelm repo update

helm install istio-ingressgateway istio/gateway



次に、Gateway / VirtualService / Service / Pod(nginx)の作成を行う

(以下、テストコード)
# Istio Gatewayの定義。Ingress Gatewayを通じてnginxへのHTTPトラフィックを処理する。
apiVersion: networking.istio.io/v1
kind: Gateway
metadata:
name: http-gateway # Gatewayの名前
namespace: default # 使用するKubernetesの名前空間
spec:
selector:
istio: ingressgateway # Istio IngressGateway側でも同様のラベルにしている(一致してること!)
servers:
- port:
number: 80 # リスニングするポート番号
name: http # ポート名
protocol: HTTP # 使用するプロトコル
hosts:
- "*" # 任意のホストからのリクエストを受け入れる

---
# Istio VirtualServiceの定義。Gatewayで受けたHTTPリクエストをnginx Serviceにルーティングする。
apiVersion: networking.istio.io/v1
kind: VirtualService
metadata:
name: nginx # VirtualServiceの名前
namespace: default # 使用するKubernetesの名前空間
spec:
hosts:
- "*" # 任意のホストを対象にリクエストを受け入れる
gateways:
- http-gateway # nginx-gatewayで定義したGatewayを通じてトラフィックをルーティング
http:
- match:
- uri:
prefix: "/" # URIパスが"/"で始まるリクエストをマッチ
route:
- destination:
host: nginx.default.svc.cluster.local # nginx Serviceへのルーティング
port:
number: 80 # nginx Serviceのポート
---
apiVersion: v1
kind: Service
metadata:
name: nginx # サービス名
namespace: default # 名前空間
spec:
selector:
app: nginx # nginx ポッドを選択
ports:
- protocol: TCP
port: 80 # クラスタ内でアクセスするポート
targetPort: 80 # nginx ポッドの実際のポート
type: ClusterIP # 外部アクセスにはIstio Gateway経由でアクセス

---
apiVersion: v1
kind: Pod
metadata:
name: nginx
namespace: default
labels:
app: nginx # サービスと一致するラベル
spec:
containers:
- name: nginx
image: nginx:latest # nginxの公式イメージを使用
ports:
- containerPort: 80 # nginxのリスニングポート
resources:
requests:
memory: "64Mi" # コンテナが最初に要求するメモリ
cpu: "100m" # コンテナが最初に要求するCPU
limits:
memory: "128Mi" # コンテナが最大で消費できるメモリ
cpu: "500m" # コンテナが最大で消費できるCPU


上記、記載したラベルと一致しているか、istio-ingressgatewayにて確認してみる
spec:
selector:
istio: ingressgateway # Istio IngressGateway側でも同様のラベルにしている(一致してること!)


kubectl get svc istio-ingressgateway -n istio-system --show-labels
(以下が結果、一致してることが分かる)










2025年2月3日月曜日

kiali install(2025)

以下の手順で、kialiの導入を行う

kialiのインストール:

kubectl create namespace istio-system

helm upgrade --install --namespace istio-system --set auth.strategy=anonymous --set deployment.logger.log_level=debug --set deployment.ingress.enabled=true --repo https://kiali.org/helm-charts kiali-server kiali-server 



istioのインストール(未導入であれば実施):

helm install istio-base istio/base -n istio-system

helm install istiod istio/istiod -n istio-system

helm install istio-ingress istio/gateway -n istio-system --set platform=openshift



2025年2月2日日曜日

containerdのインストール方法について(2025年版)

修正前:

# Containerdのインストール
sudo apt-get -y install containerd.io
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
sudo systemctl daemon-reload
sudo systemctl restart containerd
sudo systemctl enable containerd


修正後:

リポジトリの記載を変更

# Containerdのインストール
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/trusted.gpg.d/docker.asc
echo "" | sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
yes | sudo apt-get install containerd.io
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
sudo systemctl daemon-reload
sudo systemctl restart containerd
sudo systemctl enable containerd








Ciliumの導入方法(k8s導入後からの実施について)

k8sの初期導入後からCNIの導入を進めてみる 

今回は、Ciliumを導入してみる。


CNI導入前の状態:





ciliumの導入方法:

helm install cilium cilium/cilium --namespace kube-system \

  --set kubeProxyReplacement=false \

  --set k8sServiceHost=192.168.10.128 \

  --set k8sServicePort=6443


導入後、kubectl get nodeを実施



2025年2月1日土曜日

NATインスタンス経由でプライベートサブネットのEC2から外部通信してみる

Nat-gatewayを使わずに、プライベートのEC2から外部通信する方法を記載します。



手順:

1)nat-gatwayの導入方法は、AWS公式に記載があるので参照





2)該当のEC2を選択 > アクション > ソース/宛先チェックを変更を選択
3)送信元/送信先チェック中の停止をチェックする > 保存を押す















4)ルートを追加する
5)対象のプライベートサブネット(private instanceが所属しているサブネット)のルートテーブルを更新する

  送信先       :0.0.0.0/0 

  ターゲット:インスタンス(nat-instanceEC2を選択)

6)変更を保存











設定後の様子

(ターゲットの表示が0.0.0.0/0 |  nat-instanceのインターフェースが表示されていることが確認できる)












7)private subnet用のEC2を作成する



8)SGの設定も忘れずに!

nat-instance側:

(private instanceからデータの制御用途として行う)

インバウンド    ー>private インストタンスのサブネットのネットワークレンジを記載

アウトバウンドー>private インストタンスのサブネットのネットワークレンジを記載












private-instance側:












7)nat-instanceにログイン行う、次にprivateのEC2にログインを行う

8)疎通確認してみます。







各AIツールの検証結果とリアルな評価:私感

 MacStudio M4 MAX 36GB/1TBを使っていて 個人的な、Aiエージェントの検証結果になります。 各エージェントのパラメータの意味や模索で結構時間が溶けてしまった。。。 各AIツールの検証結果とリアルな評価 ツール名 評価とリアルなボトルネック Roo Code...