Open7
k8s, kubectl
ピン留めされたアイテム
tips
ローリングアップデート
kubectl scale deployment <deployment-name> --replicas=1
k8s Secret
stringData というフィールドがあり、このフィールドを使用するとbase64にエンコードする必要がない。
単発job実行時のエラーについて
エラー内容は以下の通り
$ kubectl create job <job-name> --from=cronjob/<cronjob-name>
error: from must be an existing cronjob: no kind "CronJob" is registered for version "batch/v1" in scheme "k8s.io/kubectl/pkg/scheme/scheme.go:28"
kubectlの clientのバージョンを 1.21.1以上にすることで解決
k8s でコンテナレジストリを利用する
kubectl create secret docker-registry <任意の名前> --docker-server=<コンテナレジストリのHOST名> --docker-username= --docker-password=<パスワード>
HPA(HorizontalPodAutoscaler)
hpa は kubectl create
コマンドでmanifestが作りづらいので、サンプルマニフェストおいておく。
※hpaは podのリソース状況などから自動でオートスケールさせるためのリソース
hpa.yaml
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: gc2-streaming-bot-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: <対象とするdeployment名>
minReplicas: 1
maxReplicas: 4
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50
参考
WIP kustomize
- k8s manifestを
base
とoverlay
の2つに分けて定義する。- base: 全環境共通のリソース定義
- overlays: 環境ごとのリソース定義
base
│ └─ api-deployments.yml
overlays
├─prod
│ └─api-deployments.yml
├─stg
│ └─api-deployments.yml
└─dev
└─api-deployments.yml
できること