linkerd
Linkerdは、Kubernetes環境で自動mTLS、トラフィック分割、リトライ、可観測性などを、少ないリソース消費と運用負荷で実現する軽量なサービスメッシュを構築するSkill。
📜 元の英語説明(参考)
Linkerd lightweight service mesh for Kubernetes. Use when the user needs automatic mTLS, traffic splitting, retries, and observability with minimal resource overhead and operational complexity.
🇯🇵 日本人クリエイター向け解説
Linkerdは、Kubernetes環境で自動mTLS、トラフィック分割、リトライ、可観測性などを、少ないリソース消費と運用負荷で実現する軽量なサービスメッシュを構築するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o linkerd.zip https://jpskill.com/download/15074.zip && unzip -o linkerd.zip && rm linkerd.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/15074.zip -OutFile "$d\linkerd.zip"; Expand-Archive "$d\linkerd.zip" -DestinationPath $d -Force; ri "$d\linkerd.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
linkerd.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
linkerdフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Linkerd
Linkerd は、シンプルさ、セキュリティ、パフォーマンスに重点を置いた、Kubernetes 向けの超軽量サービスメッシュです。
インストール
# Linkerd CLI をインストール
curl --proto '=https' -sSfL https://run.linkerd.io/install | sh
export PATH=$HOME/.linkerd2/bin:$PATH
# クラスタの事前チェック
linkerd check --pre
# コントロールプレーンをインストール
linkerd install --crds | kubectl apply -f -
linkerd install | kubectl apply -f -
# インストールを確認
linkerd check
# viz 拡張機能 (ダッシュボード、メトリクス) をインストール
linkerd viz install | kubectl apply -f -
linkerd viz check
メッシュインジェクション
# サイドカープロキシをデプロイメントに注入
kubectl get deploy web-app -o yaml | linkerd inject - | kubectl apply -f -
# 名前空間全体を注入
kubectl annotate namespace default linkerd.io/inject=enabled
# メッシュ化された Pod を確認
linkerd stat deploy -n default
# deployment.yaml — Linkerd インジェクションアノテーション付きのデプロイメント
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
annotations:
linkerd.io/inject: enabled
spec:
replicas: 3
selector:
matchLabels:
app: web-app
template:
metadata:
annotations:
linkerd.io/inject: enabled
spec:
containers:
- name: web
image: myregistry.com/web-app:v1
ports:
- containerPort: 8080
resources:
requests:
cpu: 100m
memory: 128Mi
トラフィック分割
# traffic-split.yaml — 90/10 のトラフィック分割によるカナリアデプロイメント
apiVersion: split.smi-spec.io/v1alpha2
kind: TrafficSplit
metadata:
name: web-app-split
spec:
service: web-app
backends:
- service: web-app-stable
weight: 900
- service: web-app-canary
weight: 100
# services.yaml — トラフィック分割のためのバックエンドサービス
apiVersion: v1
kind: Service
metadata:
name: web-app
spec:
selector:
app: web-app
ports:
- port: 8080
---
apiVersion: v1
kind: Service
metadata:
name: web-app-stable
spec:
selector:
app: web-app
version: stable
ports:
- port: 8080
---
apiVersion: v1
kind: Service
metadata:
name: web-app-canary
spec:
selector:
app: web-app
version: canary
ports:
- port: 8080
サービスプロファイル
# service-profile.yaml — リトライとタイムアウトによるルートを定義
apiVersion: linkerd.io/v1alpha2
kind: ServiceProfile
metadata:
name: api-service.default.svc.cluster.local
namespace: default
spec:
routes:
- name: GET /api/users
condition:
method: GET
pathRegex: /api/users
responseClasses:
- condition:
status:
min: 500
max: 599
isFailure: true
timeout: 5s
isRetryable: true
- name: POST /api/orders
condition:
method: POST
pathRegex: /api/orders
timeout: 10s
isRetryable: false
retryBudget:
retryRatio: 0.2
minRetriesPerSecond: 10
ttl: 10s
認証ポリシー
# authz-policy.yaml — mTLS アクセス制御のためのサーバーと認証
apiVersion: policy.linkerd.io/v1beta2
kind: Server
metadata:
name: api-server
namespace: default
spec:
podSelector:
matchLabels:
app: api-service
port: 8080
proxyProtocol: HTTP/2
---
apiVersion: policy.linkerd.io/v1alpha1
kind: AuthorizationPolicy
metadata:
name: api-access
namespace: default
spec:
targetRef:
group: policy.linkerd.io
kind: Server
name: api-server
requiredAuthenticationRefs:
- name: default-mesh-tls
kind: MeshTLSAuthentication
group: policy.linkerd.io
---
apiVersion: policy.linkerd.io/v1alpha1
kind: MeshTLSAuthentication
metadata:
name: default-mesh-tls
namespace: default
spec:
identities:
- "*.default.serviceaccount.identity.linkerd.cluster.local"
マルチクラスタ
# 2 つのクラスタをリンク
linkerd multicluster install | kubectl apply -f -
linkerd multicluster link --cluster-name=west | kubectl --context=east apply -f -
# サービスを他のクラスタにエクスポート
kubectl label svc web-app mirror.linkerd.io/exported=true
# マルチクラスタのステータスを確認
linkerd multicluster check
linkerd multicluster gateways
一般的なコマンド
# 可観測性
linkerd viz stat deploy
linkerd viz routes deploy/web-app
linkerd viz top deploy/web-app
linkerd viz tap deploy/web-app
# ダッシュボード
linkerd viz dashboard
# デバッグ
linkerd diagnostics proxy-metrics -n default pod/web-app-abc123
linkerd identity -n default
# チェックとアップグレード
linkerd check
linkerd upgrade | kubectl apply -f - 📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Linkerd
Linkerd is an ultralight service mesh for Kubernetes focused on simplicity, security, and performance.
Installation
# Install Linkerd CLI
curl --proto '=https' -sSfL https://run.linkerd.io/install | sh
export PATH=$HOME/.linkerd2/bin:$PATH
# Pre-check cluster
linkerd check --pre
# Install control plane
linkerd install --crds | kubectl apply -f -
linkerd install | kubectl apply -f -
# Verify installation
linkerd check
# Install viz extension (dashboard, metrics)
linkerd viz install | kubectl apply -f -
linkerd viz check
Mesh Injection
# Inject sidecar proxies into a deployment
kubectl get deploy web-app -o yaml | linkerd inject - | kubectl apply -f -
# Inject entire namespace
kubectl annotate namespace default linkerd.io/inject=enabled
# Verify meshed pods
linkerd stat deploy -n default
# deployment.yaml — Deployment with Linkerd injection annotation
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
annotations:
linkerd.io/inject: enabled
spec:
replicas: 3
selector:
matchLabels:
app: web-app
template:
metadata:
annotations:
linkerd.io/inject: enabled
spec:
containers:
- name: web
image: myregistry.com/web-app:v1
ports:
- containerPort: 8080
resources:
requests:
cpu: 100m
memory: 128Mi
Traffic Splitting
# traffic-split.yaml — Canary deployment with 90/10 traffic split
apiVersion: split.smi-spec.io/v1alpha2
kind: TrafficSplit
metadata:
name: web-app-split
spec:
service: web-app
backends:
- service: web-app-stable
weight: 900
- service: web-app-canary
weight: 100
# services.yaml — Backend services for traffic split
apiVersion: v1
kind: Service
metadata:
name: web-app
spec:
selector:
app: web-app
ports:
- port: 8080
---
apiVersion: v1
kind: Service
metadata:
name: web-app-stable
spec:
selector:
app: web-app
version: stable
ports:
- port: 8080
---
apiVersion: v1
kind: Service
metadata:
name: web-app-canary
spec:
selector:
app: web-app
version: canary
ports:
- port: 8080
Service Profiles
# service-profile.yaml — Define routes with retries and timeouts
apiVersion: linkerd.io/v1alpha2
kind: ServiceProfile
metadata:
name: api-service.default.svc.cluster.local
namespace: default
spec:
routes:
- name: GET /api/users
condition:
method: GET
pathRegex: /api/users
responseClasses:
- condition:
status:
min: 500
max: 599
isFailure: true
timeout: 5s
isRetryable: true
- name: POST /api/orders
condition:
method: POST
pathRegex: /api/orders
timeout: 10s
isRetryable: false
retryBudget:
retryRatio: 0.2
minRetriesPerSecond: 10
ttl: 10s
Authorization Policy
# authz-policy.yaml — Server and authorization for mTLS access control
apiVersion: policy.linkerd.io/v1beta2
kind: Server
metadata:
name: api-server
namespace: default
spec:
podSelector:
matchLabels:
app: api-service
port: 8080
proxyProtocol: HTTP/2
---
apiVersion: policy.linkerd.io/v1alpha1
kind: AuthorizationPolicy
metadata:
name: api-access
namespace: default
spec:
targetRef:
group: policy.linkerd.io
kind: Server
name: api-server
requiredAuthenticationRefs:
- name: default-mesh-tls
kind: MeshTLSAuthentication
group: policy.linkerd.io
---
apiVersion: policy.linkerd.io/v1alpha1
kind: MeshTLSAuthentication
metadata:
name: default-mesh-tls
namespace: default
spec:
identities:
- "*.default.serviceaccount.identity.linkerd.cluster.local"
Multicluster
# Link two clusters
linkerd multicluster install | kubectl apply -f -
linkerd multicluster link --cluster-name=west | kubectl --context=east apply -f -
# Export a service to other clusters
kubectl label svc web-app mirror.linkerd.io/exported=true
# Check multicluster status
linkerd multicluster check
linkerd multicluster gateways
Common Commands
# Observability
linkerd viz stat deploy
linkerd viz routes deploy/web-app
linkerd viz top deploy/web-app
linkerd viz tap deploy/web-app
# Dashboard
linkerd viz dashboard
# Debugging
linkerd diagnostics proxy-metrics -n default pod/web-app-abc123
linkerd identity -n default
# Check and upgrade
linkerd check
linkerd upgrade | kubectl apply -f -