Slide 20
Slide 20 text
©MIXI
カスタムコントローラーを作ってみよう
監視ループを回し、対象Podを検出
● 対象となるannotationが付与されたPodを
検出します
● annotationはdeploymentに以下のように設
定する
○ pre-oom-killer.v1alpha1.k8s.io/target-container-name:
"app"
● ここで検出したPodで更に処理を行う
podList, err := c.clientset.CoreV1().Pods("").List(
c.context,
metav1.ListOptions{
LabelSelector: PodLabelSelector,
},
)
for _, pod := range podList.Items {
podName, podNamespace := pod.ObjectMeta.Name,
pod.ObjectMeta.Namespace
podTargetContainer, ok :=
pod.ObjectMeta.Annotations[TargetContainerName]
if !ok {
log.WithFields(log.Fields{
"pod": podName,
"namespace": podNamespace,
}).Errorf("PodTargetContainerNameFetchError: %s", err)
continue
}
// 後続処理は省略
}