用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/ffsshhttiikk/opencode-agents-skills --skill kubernetes命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | kubernetes |
| description | Kubernetes orchestration for container deployment, scaling, and management |
| license | MIT |
| compatibility | opencode |
| metadata | {"audience":"devops-engineers","category":"systems-administration"} |
When deploying applications to Kubernetes clusters, creating deployment manifests, or managing Kubernetes resources.
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: api-server
labels:
app: api-server
version: v1
tier: backend
spec:
replicas: 3
revisionHistoryLimit: 5
selector:
matchLabels:
app: api-server
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 25%
maxUnavailable: 0
template:
metadata:
labels:
app: api-server
version: v1
tier: backend
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8080"
spec:
serviceAccountName: api-server
securityContext:
runAsNonRoot: true
runAsUser: 1000
{}
# service.yaml
apiVersion: v1
kind: Service
metadata:
name: api-server
labels:
app: api-server
spec:
type: ClusterIP
selector:
app: api-server
ports:
- name: http
port: 80
targetPort: http
protocol: TCP
- name: grpc
port: 9090
targetPort: grpc
protocol: TCP
sessionAffinity: ClientIP
sessionAffinityConfig:
clientIP:
timeoutSeconds: 3600
# ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: api-ingress
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/proxy-body-size: "10m"
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
nginx.ingress.kubernetes.io/proxy-connect-timeout: "60"
nginx.ingress.kubernetes.io/limit-rps: "100"
nginx.ingress.kubernetes.io/limit-connections: "50"
cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
ingressClassName: nginx
tls:
- hosts:
- api.example.com
secretName: api-tls
rules:
- host: api.example.com
http:
paths:
- path: /api/v1
pathType: Prefix
backend:
service:
name: api-server
# Chart.yaml
apiVersion: v2
name: api-server
description: A Helm chart for API Server deployment
version: 1.2.3
appVersion: "1.2.3"
kubeVersion: ">=1.20.0-0"
dependencies:
- name: redis
version: "17.x"
repository: "https://charts.bitnami.com/bitnami"
condition: redis.enabled
- name: postgresql
version: "11.x"
repository: "https://charts.bitnami.com/bitnami"
condition: postgresql.enabled
# values.yaml
replicaCount: 3
image:
repository: registry.example.com/api-server
tag: v1.2.3
pullPolicy: IfNotPresent
imagePullSecrets:
- name: registry-secret
service:
type:
{}
[]
{}
#!/bin/bash
# Kubernetes management utilities
k8s_deploy() {
local manifest="$1"
kubectl apply -f "$manifest" --record
echo "Deployed: $manifest"
}
k8s_rollback() {
local deployment="$1"
local revision="${2:---previous}"
kubectl rollout undo deployment/"$deployment" --to-revision="$revision"
kubectl rollout status deployment/"$deployment"
}
k8s_debug_pod() {
local pod="$1"
kubectl debug -it "$pod" --image=busybox --target="$pod"
}
k8s_get_resources() {
echo "=== Cluster Resources ==="
echo "Nodes:"
kubectl get nodes -o wide
echo ""
echo "Pods (All namespaces):"
kubectl get pods -A -o wide --sort-by='.metadata.namespace'
echo ""
echo "Top Nodes:"
kubectl top nodes
echo
kubectl top pods -A
}
() {
pod=
kubectl -it -- netstat -ant
kubectl -it -- ss -tunapl
}
() {
deployment=
local_port=
remote_port=
kubectl port-forward deployment/ :
}
() {
namespace=
serviceaccount=
token=$(kubectl get secret -n \
-o jsonpath= \
| -d)
ca=$(kubectl get secret -n \
-o jsonpath= \
| -d)
context=$(kubectl config current-context)
cluster=$(kubectl config view -o jsonpath=)
server=$(kubectl config view -o jsonpath=)
> <<
}