แฌแแแก, แแแแแแ แ แแแ แแแฃแแ Kubernetes แแแแคแแ แแแชแแ - KubeCon + CloudNativeCon Europe 2020 - แแแ แขแฃแแแฃแ แ แแงแ. แแฃแแชแ, แคแแ แแแขแแก แแกแแแแ แชแแแแแแแแ แฎแแแ แแ แจแแแแแจแแแ แฉแแแแ แแแแ แฎแแแก แแแแแแแแแ แแแฎแกแแแแแแก โแฌแแแ? แแแจ! แแแแชแแแแ Shell-แแแแ แแขแแ แโ แ แแแแแแช แแซแฆแแแแแ แฉแแแแก แฆแแ แแแแแก แแ แแแฅแขแก
แแก แกแขแแขแแ, แ แแแแแแช แจแแแแแแแแฃแแแ แแแฎแกแแแแแแ, แฌแแ แแแแแแแแก แแแแแแแแก Kubernetes-แแกแแแแก แแแแ แแขแแ แแแแก แจแแฅแแแแก แแ แแชแแกแแก แแแแแ แขแแแแแแกแแแแก แแ แแแแฉแแแแแแก, แแฃ แ แแแแ แจแแแแซแแแแ แจแแฅแแแแ แแฅแแแแ แกแแแฃแแแ แ แแแแแแแแฃแ แ แซแแแแกแฎแแแแแ Shell-แแแแ แแขแแ แแก แแแแแงแแแแแแ.
แแแชแแแแ
Flant-แจแ แฉแแแ แแฃแแแแแแ แแแฎแแ แชแแแแแแ แงแแแแแคแ แแก แแแขแแแแแแชแแแก แแ แแแขแแแแขแแแแชแแแก. แแฆแแก แแแแแ แแ แ แกแแแแขแแ แแกแ แแแแชแแคแชแแแแ แแแกแแฃแแ แแแ. แฒจแแฎแแแแ แ: แฆแ แฃแแแแแแแ แญแฃแ แแแก แกแแ แแแขแแ แแแ!
แแฃแแชแ, แแแแแฌแงแแ แแ แแแแขแแฅแกแขแแ, แ แแแแแจแแช แแก แงแแแแแคแแ แ แฎแแแแ: Kubernetes.
Kubernetes API แแ แแแแขแ แแแแ แแแ
Kubernetes-แจแ API แจแแแซแแแแ แฌแแ แแแแแแแแแ แแงแแก แ แแแแ แช แแ แแแแแ แ แคแแแแฃแ แ แกแแ แแแ แ, แกแแแแช แแแแแแแกแแแฃแแแ แแแ แแฅแขแแ แแแแ แแแแแแฃแแ แขแแแแก แแแแแฅแขแแกแแแแก. แแแแแฅแขแแแ (แ แแกแฃแ แกแแแ) แแ แกแแ แแแ แแ แฌแแ แแแแแแแแแแ YAML แคแแแแแแแ. แแแ แแ แแแแกแ, แกแแ แแแ แก แแฅแแก แซแแ แแแแแ API, แ แแแแแแช แกแแจแฃแแแแแแก แแแซแแแแ แแแแแแแแ แกแแแ แ แแ:
- แแแแฆแแ แ แแกแฃแ แกแ แแแแแกแ แกแแฎแแกแ แแ แแแกแแฎแแแแแแก แแแฎแแแแแ;
- แจแแชแแแ แ แแกแฃแ แกแ (แแ แจแแแแฎแแแแแจแ, แกแแ แแแ แ แแแแฎแแแก แแฎแแแแ โแกแฌแแ โ แแแแแฅแขแแแก - แงแแแแ แแ แแกแฌแแ แแ แฉแแแแงแแแแแแแฃแแ แแ แกแฎแแ แแแ แแฅแขแแ แแแแแกแแแแก แแแแแฃแแแแแแ แงแแแแ แฃแแฃแแแแแแงแแคแแแแ);
- แแแแแงแฃแ แ แแแแแแแ แ แแกแฃแ แกแแกแแแแก (แแ แจแแแแฎแแแแแจแ แแแแฎแแแ แแแแแ แแแฃแงแแแแแแแแ แแฆแแแก แแแก แแแแแแแแ แ/แแแแแฎแแแแฃแ แแแ แกแแแก).
แแแ แแแแ, Kubernetes แแแฅแแแแแแก แ แแแแ แช แแ แแแแแ แ แคแแแแฃแ แ แกแแ แแแ แ (YAML แแแแแคแแกแขแแชแแแแแกแแแแก) แกแแแ แซแแ แแแแแ แแแแแแแ (แแแแฎ, แกแแแแแแแแแแจแ แแ แแก แกแฎแแ, แแแแ แแ แฉแแแ แแแ แแฎแแ แแแแแแขแแแแแ).
แแ แแแแแแ แแก แแ แแก, แ แแ แกแแ แแแ แก แจแแฃแซแแแ แแฎแแแแ แแแคแแ แแแชแแแก แจแแแแฎแแ. แแแแกแแแแแก, แ แแ แแก แแแฃแจแแแก, แแญแแ แแแแแ แแแแขแ แแแแ แ - แแแแ แ แงแแแแแแ แแแแจแแแแแแแแแ แแ แคแฃแแแแแแแขแฃแ แ แแแแชแแคแชแแ Kubernetes-แแก แกแแแงแแ แแจแ.
แแ แกแแแแแก แแ แ แซแแ แแแแแ แขแแแแก แแแแขแ แแแแ แ. แแแ แแแแ แแฆแแแก แแแคแแ แแแชแแแก Kubernetes-แแแ, แแแฃแจแแแแแก แแแก แฌแงแแแแแ แแแแแแแก แแแฎแแแแแ แแ แแแ แฃแแแแก K8-แจแ. แแแแ แ แแฆแแแก แแแคแแ แแแชแแแก Kubernetes-แแแแ, แแแแ แแ, แแแ แแแแ แขแแแแกแแแ แแแแกแฎแแแแแแแ, แชแแแแก แแแแแแ แแ แแแ แ แ แแกแฃแ แกแแก แแแแแแแ แแแแแก.
แแแแแ แฃแคแ แ แแฎแแแก แแแแฎแแแแ Kubernetes-แจแ แแแแแแแแแแก แจแแฅแแแแก แแ แแชแแกแก:
- แแแแแแแแแแก แแแแขแ แแแแ แ (แจแแแแก
kube-controller-manager
) แแฆแแแก แแแคแแ แแแชแแแก แแแแแแแแแแก แจแแกแแฎแแ แแ แฅแแแแก ReplicaSet-แก. - ReplicaSet แแ แแแคแแ แแแชแแแก แกแแคแฃแซแแแแแ แฅแแแแก แแ แ แแแแแแแก (แแ แแแแก), แแแแ แแ แแก แแแแ แฏแแ แแ แแ แแก แแแแแแแแแ.
- แแแแแแแแแแ แแฌแงแแแก แแแแแแก แแ แแแแขแแแก แแแแแซแแแแก แแแคแแ แแแชแแแก แแแ YAML-แแแจแ.
- Kubelets แชแแแแก แแแ แ แ แแกแฃแ แกแก (แแแฅแแแ Docker).
แจแแแแแ แแแแแ แแก แแแแแแแแแแ แแแ แแแแ แแแแ แกแแแแ แแกแแแ แ แแแแแแแแแแ แแแแ: แแฃแแแแแขแ แแแแฌแแแแก แแแแขแแแแแ แแแก, แแแแแแก แแแแแก แกแขแแขแฃแกแก แแ แแแแแแแแก แฃแแแ. ReplicaSet แแแแขแ แแแแ แ แแฆแแแก แกแขแแขแฃแกแก แแ แแแแแแฎแแแแก แ แแแแแแ แแแแ แแแแก แแแแแแแ แแแแแก. แแแแแ แฎแแแแ Deployment Controller-แแแ แแแแแแจแแ แแแแ แแ แแแแฎแแแ แแแแแ แกแแแแแแแ แแฆแแแก แแแแแฎแแแแฃแ (แแแแแแแแ แ) แกแขแแขแฃแกแก.
Shell-แแแแ แแขแแ แ
แแแแแแแก, แ แแ Kubernetes แแคแฃแซแแแแ แกแฎแแแแแกแฎแแ แแแแขแ แแแแ แแแแก แแ แแแแแแ แแฃแจแแแแแก (Kubernetes แแแแ แแขแแ แแแ แแกแแแ แแ แแแ แแแแขแ แแแแ แแแ). แฉแแแแแ แแแแฎแแ, แ แแแแ แจแแแฅแแแแ แกแแแฃแแแ แ แแแแ แแขแแ แ แแแแแแแแฃแ แ แซแแแแกแฎแแแแแ? แแ แแฅ แฉแแแ แแแแ แจแแแฃแจแแแแแฃแแ แแแแแก แกแแแแจแแแแแจแ
แแแ แขแแแ แแแแแแแแ: แกแแแแฃแแแแแแแก แแแแแ แแแ
แแแแแ แจแแแฎแแแแ แแแ แขแแ แแแแแแแแก.
แแแฅแแแ, แแแแฅแแก แแฃแแแ แแแขแแก แแแแกแขแแ แ. แแแก แแฅแแก แกแแฎแแแแ แกแแแ แชแ default
แ แแฆแแช แกแแแแฃแแแแแแแ mysecret
. แแแ แแ แแแแกแ, แแแแกแขแแ แจแ แแ แแก แกแฎแแ แกแแฎแแแแ แกแแแ แชแแแแ. แแแแแแ แ แแแแแแแก แกแแแชแแแแฃแ แ แแขแแแแขแ แแฅแแก แแแแแแ แแแฃแแ. แฉแแแแ แแแแแแแ แแแแแแแแแ แแ Secret แกแแฎแแแแ แกแแแ แชแแจแ แแแแแแแ.
แแแแชแแแแก แแ แแฃแแแแก แแก แคแแฅแขแ, แ แแ แแแแกแขแแ แจแ แจแแแซแแแแ แแแแแฉแแแแก แแฎแแแ แกแแฎแแแแ แกแแแ แชแแแแ แแ แแแแแแ แ แแแแแแแก แจแแแซแแแแ แฐแฅแแแแแก แแก แแขแแแแขแ. แแแแ แแก แแฎแ แแ, แ แแแแกแแช แแแ แแแงแ แฌแแแจแแแแ, แกแแแแฃแแแแช แฃแแแ แฌแแแจแแแแก. แแแแก แแแ แแ, แแแแแ แกแแแแฃแแแแช แจแแแซแแแแ แจแแแชแแแแแก: แแ แจแแแแฎแแแแแจแ, แแฎแแแ แกแแแแฃแแแ แฃแแแ แแแแแแแ แแแก แงแแแแ แกแแฎแแแแ แกแแแ แชแแจแ แแขแแแแขแแแแ. แแฃ แกแแแแฃแแแ แจแแแแฎแแแแแ แฌแแแจแแแแ แ แแแแแแแ แกแแฎแแแแ แกแแแ แชแแจแ, แฉแแแแแ แแแแ แแขแแ แแ แแแฃแงแแแแแแแแ แฃแแแ แแฆแแแแแแแก แแแ.
แแฎแแ, แ แแแแกแแช แแแแแแแแ แฉแแแแงแแแแแแแฃแแแ, แแ แแ แแแแแฌแงแแ แแแกแ แแแแฎแแ แชแแแแแแ shell-แแแแ แแขแแ แแก แแแแแงแแแแแแ. แแแแ แแ แแแ แแแ แ แแแจแ แฆแแ แก แ แแแแแแแแ แกแแขแงแแแก แแฅแแ แแแแแ แจแแ-แแแแ แแขแแ แแก แจแแกแแฎแแ.
แ แแแแ แแฃแจแแแแก shell-แแแแ แแขแแ แ
Kubernetes-แแก แกแฎแแ แแแขแแแ แแแแแแก แแกแแแแกแแ, shell-แแแแ แแขแแ แ แแฃแจแแแแก แกแแแฃแแแ แแแแจแ. แแ แแแแจแ แแแ แแฅแขแแ แแแจแ /hooks
แจแแกแ แฃแแแแแแ แคแแแแแแ แแแแฎแแแ. แแก แจแแแซแแแแ แแงแแก แกแแ แแแขแแแ Bash, Python, Ruby แแ แ.แจ. แแกแแ แจแแกแ แฃแแแแแ แคแแแแแแก แฉแแแ แแฃแฌแแแแแ แฐแฃแแแแก (แแแแแแแ).
Shell-แแแแ แแขแแ แ แแแแแแฌแแ แก Kubernetes-แแก แแแแแแแแแก แแ แแฌแแ แแแแแก แแ แแแแแแแก แแ แแแแแแแแแแก แกแแแแกแฃแฎแแ, แ แแช แฉแแแ แแแญแแ แแแแ.
แ แแแแ แแชแแก แญแฃแ แแแก แแแแ แแขแแ แแ แ แแแแแ แแแฃแญแแก แแแจแแแแ แแ แ แแแแก? แกแแฅแแ แแแแจแแ, แ แแ แงแแแแ แแแฃแญแก แแ แ แแขแแแ แแฅแแก. แแแจแแแแแก แแ แแก, shell-แแแแ แแขแแ แ แแฌแแ แแแแแก แงแแแแ แแแฃแญแก แแ แแฃแแแแขแแ --config
แแก แแ แแก แแแแคแแแฃแ แแชแแแก แแขแแแ. แแ แแแแก แจแแแแแ, แแแแแแแ แแแจแแแแฃแแแ แฉแแแฃแแแแ แแแ แแแแ - แแ แแแแแแแแแแก แกแแแแกแฃแฎแแ, แ แแแแแแกแแช แแกแแแ แแ แแแแก. แแ แฃแแแแแกแแแแ แจแแแแฎแแแแแจแ, แแแแแแ แแฆแแแก แกแแแแแแแแฃแแ แแแแขแแฅแกแขแก (แกแแแแแแแแฃแแ แแแแขแแฅแกแขแ) - แแแแแชแแแแแ JSON แคแแ แแแขแจแ, แ แแแแแแแแช แแแฌแแ แแแแแแ แฅแแแแแ แแแกแแฃแแ แแแ.
แแแแ แแขแแ แแก แแแแแแแแแ แแแจแจแ
แแฎแแ แฉแแแ แแแแ แแแ แ แแแแฎแแ แชแแแแแแแกแแแแก. แแแแกแแแแแก แฉแแแ แฃแแแ แแแแฌแแ แแ แแ แ แคแฃแแฅแชแแ (แกแฎแแแแ แจแแ แแก, แฉแแแ แแแ แฉแแแ แแแแแแแแแแ
- แแแ แแแแ แกแแญแแ แแ แแแแคแแแฃแ แแชแแแก แแขแแแแกแแแแก - แแก แแฉแแแแแแก แกแแแแแแแแฃแแ แแแแขแแฅแกแขแก;
- แแแแ แ แจแแแชแแแก แแแแแแก แแแแแแ แแแแแแแก.
#!/bin/bash
source /shell_lib.sh
function __config__() {
cat << EOF
configVersion: v1
# BINDING CONFIGURATION
EOF
}
function __main__() {
# THE LOGIC
}
hook::run "$@"
แจแแแแแแ แแแแแฏแ แแ แแก แแแแแฌแงแแแขแแก แ แ แแแแแฅแขแแแ แแแญแแ แแแแ. แฉแแแแก แจแแแแฎแแแแแจแ, แฉแแแ แฃแแแ แแแแงแแแ:
- แชแแแแแแแแแแก แฌแงแแ แแก แกแแแแฃแแแ;
- แงแแแแ แกแแฎแแแแ แกแแแ แชแ แแแแกแขแแ แจแ, แ แแแ แแชแแแแ แ แแแแ แแแแแแแก แแฅแแก แแแแแแ แแแฃแแ แแขแแแแขแ;
- แกแแแแแแ แกแแแแฃแแแแแแแแ แแแแก แฃแแ แฃแแแแแกแแงแแคแแ, แ แแ แแกแแแ แงแแแแ แกแแแฅแ แแแแแแแฃแแแ แฌแงแแ แแก แกแแแแฃแแแแกแแแ.
แแแแแแฌแแ แแ แกแแแแฃแแแ แฌแงแแ แ
แแแกแแแแก แกแแแแแแแแฃแแ แแแแคแแแฃแ แแชแแ แกแแแแแแ แแแ แขแแแแ. แฉแแแ แแฆแแแแจแแแแ, แ แแ แฉแแแ แแแแแขแแ แแกแแแฃแแ แแแ แ แกแแแแฃแแแ แกแแฎแแแแ mysecret
แกแแฎแแแแ แกแแแ แชแแจแ default
:
function __config__() {
cat << EOF
configVersion: v1
kubernetes:
- name: src_secret
apiVersion: v1
kind: Secret
nameSelector:
matchNames:
- mysecret
namespace:
nameSelector:
matchNames: ["default"]
group: main
EOF
แจแแแแแแ, แแแแแแ แแแแฅแแแแแแแ, แ แแแแกแแช แฌแงแแ แแก แกแแแแฃแแแ แจแแแชแแแแแ (src_secret
) แแ แแแแฆแแ แจแแแแแแ แกแแแแแแแแฃแแ แแแแขแแฅแกแขแ:
แ แแแแ แช แฎแแแแแ, แแก แจแแแชแแแก แกแแฎแแแก แแ แแแแ แแแแแฅแขแก.
แกแแฎแแแแ แกแแแ แชแแก แแแแแงแฃแ แแก แแแแแแแ
แแฎแแ แแฅแแแ แฃแแแ แแแแแแฌแแ แแ แกแแฎแแแแ แกแแแ แชแแแแ. แแแแกแแแแแก แฉแแแ แแแแฃแกแขแแแ แจแแแแแ แกแแแแแแแแฃแแ แแแแคแแแฃแ แแชแแแก:
- name: namespaces
group: main
apiVersion: v1
kind: Namespace
jqFilter: |
{
namespace: .metadata.name,
hasLabel: (
.metadata.labels // {} |
contains({"secret": "yes"})
)
}
group: main
keepFullObjectsInMemory: false
แ แแแแ แช แฎแแแแแ, แแแแคแแแฃแ แแชแแแจแ แแแแแฉแแแ แแฎแแแ แแแแ แกแแฎแแแฌแแแแแแ jqแคแแแขแ แ. แ แแแแ แช แแแกแ แกแแฎแแแ แแแแแแแแแแก, jqFilter
แคแแแขแ แแแก แงแแแแ แแ แแกแแญแแ แ แแแคแแ แแแชแแแก แแ แฅแแแแก แแฎแแ JSON แแแแแฅแขแก แฉแแแแแแแก แกแแแแขแแ แแกแ แแแแแแแ. แแกแแแแกแ แแแแคแแแฃแ แแชแแแก แแฅแแแ แฐแฃแแ แแแแฆแแแก แจแแแแแ แกแแแแแแแแฃแแ แแแแขแแฅแกแขแก:
แแก แจแแแชแแแก แแแกแแแก filterResults
แแแแกแขแแ แจแ แแแแแแฃแแ แกแแฎแแแแ แกแแแ แชแแกแแแแก. แแแแแแฃแ แ แชแแแแแ hasLabel
แแแฃแแแแแแก, แแ แแก แแฃ แแ แ แแขแแแแขแ แแแแแแ แแแฃแแ แแแชแแแฃแ แกแแฎแแแแ แกแแแ แชแแแ. แกแแแแฅแขแแ แ keepFullObjectsInMemory: false
แแแฃแแแแแแก, แ แแ แแ แแ แแก แกแแญแแ แ แกแ แฃแแ แแแแแฅแขแแแแก แแแฎแกแแแ แแแแจแ แจแแแแฎแแ.
แกแแแแแแ แกแแแแฃแแแแแแแก แแแแแงแฃแ แแก แแแแแแแ
แฉแแแ แแแฌแแ แ แงแแแแ แกแแแแฃแแแแแแแก, แ แแแแแกแแช แแฅแแก แแแแแแแแฃแแ แแแแขแแชแแ managed-secret: "yes"
(แแก แแ แแก แฉแแแแ แกแแแแแแ dst_secrets
):
- name: dst_secrets
apiVersion: v1
kind: Secret
labelSelector:
matchLabels:
managed-secret: "yes"
jqFilter: |
{
"namespace":
.metadata.namespace,
"resourceVersion":
.metadata.annotations.resourceVersion
}
group: main
keepFullObjectsInMemory: false
แแ แจแแแแฎแแแแแจแ, jqFilter
แคแแแขแ แแแก แงแแแแ แแแคแแ แแแชแแแก แกแแฎแแแแ แกแแแ แชแแกแ แแ แแแ แแแแขแ แแก แแแ แแ resourceVersion
. แกแแแแฃแแแแก แจแแฅแแแแกแแก แแแแ แแแ แแแแขแ แ แแแแแแชแ แแแแขแแชแแแก: แแก แกแแจแฃแแแแแแก แแแซแแแแ แจแแแแแ แแ แกแแแแฃแแแแแแแก แแแ แกแแแแ แแ แแแแแแฎแแแ แแกแแแ.
แแ แแแแ แแแแคแแแฃแ แแ แแแฃแแ แฐแฃแแ, แจแแกแ แฃแแแแแกแแก, แแแแฆแแแก แแแแแ แแฆแฌแแ แแ แกแแ แกแแแแแแแแฃแแ แแแแขแแฅแกแขแก. แแกแแแ แจแแแซแแแแ แฉแแแแแแแแก, แ แแแแ แช แแ แแแแแ แ แกแแแแจแแขแ (Snapshot) แแแกแแขแฃแ แ.
แงแแแแ แแ แแแคแแ แแแชแแแก แกแแคแฃแซแแแแแ แจแแแซแแแแ แจแแแฃแจแแแแแก แซแแ แแแแแ แแแแแ แแแแ. แแก แแแแแ แแแก แงแแแแ แกแแฎแแแแ แกแแแ แชแแก แแ:
- แแฃ
hasLabel
แกแแแแแฎแแแtrue
แแแแแแแแ แ แกแแฎแแแแ แกแแแ แชแแกแแแแก:- แแแแ แแแก แแแแแแแฃแ แกแแแแฃแแแแก แแแแแแแแ แแแก:
- แแฃ แแกแแแ แแแแแแ, แแก แแ แแคแแ แก แแแแแแแก;
- แแฃ แแกแแแ แแแแกแฎแแแแแแแแแ - แแฎแแ แชแแแแแแก
kubectl replace
แแcreate
;
- แแแแ แแแก แแแแแแแฃแ แกแแแแฃแแแแก แแแแแแแแ แแแก:
- แแฃ
hasLabel
แกแแแแแฎแแแfalse
แแแแแแแแ แ แกแแฎแแแแ แกแแแ แชแแกแแแแก:- แแแ แฌแแฃแแแแ, แ แแ แกแแแแฃแแแ แแ แแ แแก แแแชแแแฃแ แกแแฎแแแแ แกแแแ แชแแจแ:
- แแฃ แแแแแแแแ แแแ แกแแแแฃแแแ แแ แกแแแแแก, แฌแแจแแแแ แแแ แแแแแงแแแแแแ
kubectl delete
; - แแฃ แแแแแแแแ แแแ แกแแแแฃแแแ แแ แแ แแก แแฆแแแฉแแแแแ, แแก แแ แแคแแ แก แแแแแแแก.
- แแฃ แแแแแแแแ แแแ แกแแแแฃแแแ แแ แกแแแแแก, แฌแแจแแแแ แแแ แแแแแงแแแแแแ
- แแแ แฌแแฃแแแแ, แ แแ แกแแแแฃแแแ แแ แแ แแก แแแชแแแฃแ แกแแฎแแแแ แกแแแ แชแแจแ:
แกแฌแแ แแ แแกแ แจแแแซแแแแ แจแแแแแฅแแแ แแแ แขแแแ Kubernetes แแแแขแ แแแแ แ YAML แแแแคแแแฃแ แแชแแแก 35 แฎแแแแก แแ แแแแฎแแแแแแ แแแแแ แ แแแแแแแแแก Bash แแแแแก แแแแแงแแแแแแ! Shell-แแแแ แแขแแ แแก แแแแชแแแแ แแแแ แแ แแแแแแแแแ แแแแแแจแแ แแแ.
แแแแกแแแ, แกแแแแฃแแแแแแแก แแแแแ แแแ แแ แแ แแก แแแแฃแแแแฃแ แ แแแแแงแแแแแแก แแ แแแแแ แแ แกแคแแ แ. แแฅ แแ แแก แแแแแ แ แแแแแแแแ แแแแแแแแ แแแแกแ, แแฃ แ แ แจแแฃแซแแแ แแแก.
แแแแแแแแ 1: แชแแแแแแแแแแก แจแแขแแแ ConfigMap-แจแ
แแแแแ แจแแแฎแแแแ แแแแแแแแแแก, แ แแแแแแช แจแแแแแแ แกแแแ แแแแแกแแแ. แแแแ แแงแแแแแก ConfigMap-แก แแแ แแแแฃแแ แแแแคแแแฃแ แแชแแแก แจแแกแแแแฎแแ. แ แแแแกแแช pods แแแแฅแแแแแ, ConfigMap แแงแ แแแ แแแแฃแ แแแแแแแ แแแแแจแ (แแแแแ แแแแแ แฅแแแ v.1). แจแแกแแแแแแกแแ, แงแแแแ แแแแ แแงแแแแแก ConfigMap-แแก แแ แแแแแ แแขแฃแ แแแ แกแแแก.
แแฎแแ แแแแฃแจแแแ, แ แแ ConfigMap แจแแแชแแแแ (v.2). แแฃแแชแ, pods แแแแแแงแแแแแก ConfigMap-แแก แฌแแแ แแแ แกแแแก (v.1):
แ แแแแ แแแแแงแแแแ แแฎแแ ConfigMap-แแ (v.2) แแแแแ แแแ? แแแกแฃแฎแ แแแ แขแแแแ: แแแแแแงแแแแ แจแแแแแแ. แแแแแ แแแแแแแขแแ แกแแแแแขแ แแแ แฏแแแแก แแแแขแแชแแ แแแแงแแคแแแแแแจแ template
แแแแแแแแแแก แแแแคแแแฃแ แแชแแแแ:
แจแแแแแแ, แแก แกแแแแแขแ แแแ แฏแแแ แแแ แแแแกแขแ แแ แแแแ แงแแแแ แแแแจแ แแ แแแแแ แแฅแแแแ แ แแแแ แช Deployment. แแฎแแ แแฅแแแ แฃแแ แแแแ แฃแแแ แแแแแแฎแแแ แแแแขแแชแแ, แ แแแแกแแช แแชแแแแแ ConfigMap. แแ shell-แแแแ แแขแแ แ แแแแแแแแแ แแ แจแแแแฎแแแแแจแ. แงแแแแแคแแ แ แ แแช แแฅแแแ แฃแแแ แแแแแแแแ แแ แแก แแ แแแ แแแ แฐแฃแแ, แ แแแแแแช แแแแแแฌแแ แก ConfigMap-แก แแ แแแแแแฎแแแแก แฉแแแกแฃแแก.
แแฃ แแแแฎแแแ แแแแแ แจแแแขแแแก แชแแแแแแแแแก ConfigMap-แจแ, shell-แแแแ แแขแแ แ แจแแแแฉแแแแก แแแ แแ แฎแแแแฎแแ แแแแแแแแแก แกแแแแแขแ แแแ แฏแแแก. แ แแก แจแแแแแแแช แแฃแแแ แแแขแแกแแก แฏแแแแกแแแแ แแแแฅแแแแแแแ: แแ แแแกแขแ แ แแแแแแแก แแแแก, แจแแฅแแแแก แแฎแแแก, แแแแแแแแแ แแแก แแแฅแชแแแแก. Ready
, แแ แแแแแแแก แจแแแแแแแ. แจแแแแแแ, Deployment แกแแแฅแ แแแแแแแแ แแ แแแแแแ แแแแแ ConfigMap-แแก แแฎแแ แแแ แกแแแแ.
แแแแแแแแ 2: แแฃแจแแแแ แแแ แแแแฃแแ แ แแกแฃแ แกแแแแก แแแแแแ แขแแแแแแแ
แแแแแฎแกแแแแแแ, Kubernetes แแแซแแแแ แกแแจแฃแแแแแแก แจแแฅแแแแ แแแแแฅแขแแแแก แแแแแแแแฃแแแฃแ แ แขแแแแแ. แแแแแแแแแ, แจแแแแซแแแแ แจแแฅแแแแ แกแแฎแแก MysqlDatabase
. แแแฅแแแ, แแ แขแแแก แแฅแแก แแ แ แแแขแแแแแแชแแแแแแก แแแ แแแแขแ แ: name
ะธ namespace.
apiVersion: example.com/v1alpha1
kind: MysqlDatabase
metadata:
name: foo
namespace: bar
แฉแแแ แแแแฅแแก Kubernetes แแแแกแขแแ แ แกแฎแแแแแกแฎแแ แกแแฎแแแแแแก แกแแแ แชแแ, แ แแแแแจแแช แจแแแแแซแแแ แจแแแฅแแแแ MySQL แแแแแชแแแแ แแแแแแ. แแ แจแแแแฎแแแแแจแ shell-แแแแ แแขแแ แ แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก แ แแกแฃแ แกแแแแก แแแแแงแฃแ แแก แแแแแแแแกแแแแก MysqlDatabase
แแแ MySQL แกแแ แแแ แแแ แแแแแแจแแ แแแ แแ แแแแกแขแแ แแก แกแแกแฃแ แแแแ แแ แแแแแแ แแแแฃแแ แแแแแแแ แแแแแแแก แกแแแฅแ แแแแแแชแแ.
แแแแแแแแ 3: แแแแกแขแแ แฃแแ แฅแกแแแแก แแแแแขแแ แแแแ
แแแแแฎแกแแแแแแ, แแแแแแก แแแแแงแแแแแ แฅแกแแแแก แแแแแขแแ แแแแแก แฃแแแ แขแแแแกแ แแแแ. แแ แแแแแแแแจแ แฉแแแ แแแฉแแแแแแ, แแฃ แ แแแแ แฃแแแ แแแแฎแแ แชแแแแแแก แแกแแแ แแแแแขแแ แแแแ shell-แแแแ แแขแแ แแก แแแแแงแแแแแแ.
แฃแแแ แแแแแก แงแแแแแกแ, แแฅแแแ แฃแแแ แแแแแแฌแแ แแ แแแแแซแแแ. Shell แแแแ แแขแแ แก แกแญแแ แแแแ แแแแแแฃแแ แแแแแซแแก แกแแฎแแแ แแ IP แแแกแแแแ แแ. แแแแ แแแฎแแแ แแแแ แแก แแ แแแแแซแแแก แแแแแก แแแฃแแแแแแก.
configVersion: v1
kubernetes:
- name: nodes
apiVersion: v1
kind: Node
jqFilter: |
{
name: .metadata.name,
ip: (
.status.addresses[] |
select(.type == "InternalIP") |
.address
)
}
group: main
keepFullObjectsInMemory: false
executeHookOnEvent: []
schedule:
- name: every_minute
group: main
crontab: "* * * * *"
แแแ แแแแขแ แแก executeHookOnEvent: []
แฎแแแก แฃแจแแแก แแแฃแญแแก แแแจแแแแแก แแแแแกแแแแ แ แแแแแแแแก แกแแแแกแฃแฎแแ (แแแฃ แแแแแซแแแแก แจแแชแแแแก, แแแแแขแแแแก, แฌแแจแแแก แกแแแแกแฃแฎแแ). แแฃแแชแ, แแก แแแแฅแชแแแ (แแ แแแแแแฎแแแ แแแแแซแแแแก แกแแ) แแแแแแแแแ - แงแแแแ แฌแฃแแก, แ แแแแ แช แแแแก แแแแ แแแแแแแกแฌแแแแแก schedule
.
แแฎแแ แฉแแแแแ แแแแฎแแ, แ แแแแ แแฃแกแขแแ แแแชแแ แแ แแแแแแแแแก แจแแกแแฎแแ, แ แแแแ แแชแแ แแแแแขแแก แแแแแ แแแ? แแแแแ แจแแแฎแแแแ แแแแก:
function __main__() {
for i in $(seq 0 "$(context::jq -r '(.snapshots.nodes | length) - 1')"); do
node_name="$(context::jq -r '.snapshots.nodes['"$i"'].filterResult.name')"
node_ip="$(context::jq -r '.snapshots.nodes['"$i"'].filterResult.ip')"
packets_lost=0
if ! ping -c 1 "$node_ip" -t 1 ; then
packets_lost=1
fi
cat >> "$METRICS_PATH" <<END
{
"name": "node_packets_lost",
"add": $packets_lost,
"labels": {
"node": "$node_name"
}
}
END
done
}
แฉแแแ แแแแแแ แแแ แแแแแซแแแแก แกแแแก, แแแฆแแแ แแแ แกแแฎแแแแแก แแ IP แแแกแแแแ แแแแก, แแฃแแแแแแแ แแแ แแแแแก แแ แจแแแแแแแก แแฃแแแแแแแ แแ แแแแแแก. Shell-แแแแ แแขแแ แก แจแแฃแซแแแ แแแขแ แแแแก แแฅแกแแแ แขแ แแ แแแแแแจแ, แแแแ แจแแแแฎแแ แแแ แแแแก แชแแแแแจแ แแแแแแแแฃแแ แแแแก แแแฎแแแแแ แแแแแแ แ แคแแแแจแ $METRICS_PATH
.
แ แแแแก แแแฅแแแแแแ
แแก แกแขแแขแแ แแ แแกแ แฃแแ แแฅแแแแแแ แจแแ-แแแแ แแขแแ แจแ แฉแแจแแแแแฃแแ แกแฎแแ แแแแจแแแแแแแแแ แแแฅแแแแแแแก แแฆแฌแแ แแก แแแ แแจแ. แฌแแ แแแแแแแแแ, แ แแ แแก แแฎแแ แชแแแแแแก แ แแแแ แกแแฎแแก แแแฃแญแก แแแแกแขแแ แจแ แแแแแแแแก แกแแแแกแฃแฎแแ.
- แ แ แแแฎแแแแ, แแฃ, แแแแแ แแ แแก, แ แแฆแแช แฎแแแแ แแแแกแขแแ แจแ? แแแแแ แแ แแ แ แแ แฆแแแแกแซแแแแ?
- แแแฃแจแแแแก แแฃ แแ แ แญแฃแ แแแก แแแแ แแขแแ แ แแแฃแญแแก แกแฎแแ แแแกแขแแแชแแแก?
- แ แ แแแฎแแแแ, แแฃ, แแแฅแแแ, แฎแฃแแ แแแแแแแ แแแฎแแแแ แแแแกแขแแ แจแ แแ แแแ แแฃแแแ?
- แแแแแฃแจแแแแแก แแฃ แแ แ แจแแ-แแแแ แแขแแ แ แแแ แแแ แแแแแฃแ แแ?
- แ แแช แจแแแฎแแแ แแแฎแแแ แแแฃแ แ แแกแฃแ แกแแแก, แ แแแแ แแชแแ แแแฎแกแแแ แแแ แแ CPU?
แกแแแแแแแแ แแ, shell-แแแแ แแขแแ แก แแฅแแก แฉแแจแแแแแฃแแ แ แแแแก แแแฅแแแแแแ. แงแแแแ แแแแแแแ แ แแแแแแ แแ แแฃแจแแแแแแ แแแแแแแแแแ แแแแ.
แแแแ แแแแแแแแแแแ แแแฎแกแแแ แแก. แแแฅแแแ, แแแแฅแแก แแ แ แแแฃแญแ. แแแ แแแแ แฆแแแแกแซแแแแ แแแแแก แแแ แแแ แแแฃแญแแ. แแแกแ แแแแฃแจแแแแแแก แแแกแ แฃแแแแแก แจแแแแแ, แ แแแ แฌแแ แแแแฌแแแก. แจแแแแแแ แกแแแ แแแแแแแ แแแแแแแกแแแแ แแแแฃแแแ แแแแ แ แแแฃแญแแ - แแกแแแ แแแแฆแแแฃแแแ แ แแแแแแ แแ แจแแแแแ แแแกแจแ "แฉแแแแฉแจแ". แแแฃ Hook แแฆแแแก แแแแแแแแแแก แแแแ แ แแแก - แแ, แฃแคแ แ แแฃแกแขแแ, แกแแแแแแแแฃแแ แแแแขแแฅแกแขแแแแก แแแกแแแ.
แแกแแแ แแกแแแ แแแแแแแแแ แจแแแซแแแแ แแแแ แแแแแแแก แแ แ แแแแจแ. แแแ แแแแขแ แ แแแกแฃแฎแแกแแแแแแแแ แแแแแ group
แกแแแแแแแแฃแแ แแแแคแแแฃแ แแชแแแจแ.
แแฅแแแ แจแแแแซแแแแ แจแแฅแแแแ แแแแแกแแแแ แ แ แแแแแแแแแก แ แแแแแ/แแแแแแแ แแ แแแแ แกแฎแแแแแกแฎแแ แแแแแแแแชแแแแ. แแแแแแแแแ, แแ แ แ แแแจแ แจแแแซแแแแ แแแฃแจแแแก แแ แ แแแฃแญแแ, แแ แแแ แแฅแแ.
แงแแแแแคแแ แ แ แแช แแฅแแแ แฃแแแ แแแแแแแแ แแ แแก แแแแแก แจแแกแแแแแแกแแ แแแแคแแแฃแ แแชแแ queue
แกแแแแแแแแฃแแ แแแแคแแแฃแ แแชแแแจแ. แแฃ แ แแแแก แกแแฎแแแ แแ แแ แแก แแแแแแแแฃแแ, Hook แแฃแจแแแแก แแแแฃแแแกแฎแแแ แ แแแจแ (default
). แ แแแแก แแก แแแฅแแแแแแ แกแแจแฃแแแแแแก แแแซแแแแ แกแ แฃแแแ แแแแแแแ แแ แ แแกแฃแ แกแแแแก แแแ แแแแก แงแแแแ แแ แแแแแแ แแแฃแญแแแแแ แแฃแจแแแแแกแแก.
แแแกแแแแ
แฉแแแ แแแฃแฎแกแแแแ แ แ แแ แแก shell-แแแแ แแขแแ แ, แแแฉแแแแแ, แแฃ แ แแแแ แจแแแซแแแแ แแแกแ แแแแแงแแแแแ แกแฌแ แแคแแ แแ แฃแแ แแแแแแแ Kubernetes-แแก แแแแ แแขแแ แแแแก แจแแกแแฅแแแแแแ แแ แแแแแงแแแแแ แแแกแ แแแแแงแแแแแแก แ แแแแแแแแ แแแแแแแแ.
แแแขแแแฃแ แ แแแคแแ แแแชแแ shell-แแแแ แแขแแ แแก แจแแกแแฎแแ, แแกแแแ แ แแแแ แช แกแฌแ แแคแ แแแแแแแแแ แแแกแ แแแแแงแแแแแแก แจแแกแแฎแแ, แฎแแแแแกแแฌแแแแแแ แจแแกแแแแแแกแจแ.
แแ แแฃ แแแแแฌแแแแ, แงแแแแแแแแก แแแแฎแแ แแ แแฎแแแ แแแแแจแแแแแแแก/PR/แแแ แกแแแแแแแแแก แแแฎแแ GitHub-แแ, แกแแแแช, แกแฎแแแแ แจแแ แแก, แจแแแแซแแแแ แแแแแแ แกแฎแแ
แแแแแแแแ แแ แกแแแแแแแ
แแแแแ แกแแแฅแขแแแแแแแ (~23 แฌแฃแแ):
แแแแแ แแจแแก แแ แแแแแขแแชแแ:
PS
แแกแแแ แฌแแแแแแฎแแ แฉแแแแก แแแแแแ:
- ยซ
Kubernetes-แแก แแแแ แแขแแ แแแแก แแแ แขแแแ แจแแฅแแแ shell-แแแแ แแขแแ แแแ: แแ แแแฅแขแแก แแ แแแ แแกแ แฌแแแก แแแแแแแแแแแจแ "; - ยซ
Shell-แแแแ แแขแแ แแก แฌแแ แแแแแแแ: Kubernetes-แแกแแแแก แแแแ แแขแแ แแแแก แจแแฅแแแ แแฎแแแฎแแ แแแแแ แขแแแแ "; - ยซ
แแแแแแ แแ แแแกแแฎแแ แฎแแแแแแ Kubernetes แแแแกแขแแ แแก แแแแแแแแแ? แแชแฎแแแแแแ แแแแแแแขแแก แแแแ แแขแแ แก "; - ยซ
Kubernetes-แแก แแแคแแ แแแแแ แแ แจแแแกแแแ" (แแแแแฎแแแแ แแ แแแแแ แแแแแ แแจแ) .
แฌแงแแ แ: www.habr.com