⢠á¡ááŒá±áá¶ááŸá
á ááœááºááááºáá¬áá»á¬ážááŸáá·áº Kubernetes ááŒáá·áº á
áááºááá¯ááºáá«- á¡ááŒá±á¬ááºážá¡áá¬ááá¯áá±á·áá¬ááẠá¡áá°ážá¡ááœá±á·á¡ááŒá¯á¶áááá¯á¡ááºáá«á ⢠ááá·áºááá¯ááºááá¯áẠá¡á
á¯á¡áá±ážáá»á¬ážááᯠáá¯ááºáá±á¬ááºáá« ááá¯á·ááá¯áẠAmazoná Google á
áááºááá¯á·á០á
á®áá¶ááá·áºááœá²áá¬ážáá±á¬ Kubernetes áááºáá±á¬ááºááŸá¯ááᯠááœá±ážáá»ááºáá«á ⢠ááœááºááááºáá¬áááá¶ááá¬ááŸáá·áº á¡áááºážá¡ááŒá
áºáá¯á¶ážá
áœá²ááŸá¯ááᯠá
á®áá¶ááá·áºááœá²ááẠKubernetes ááᯠá¡áá¯á¶ážááŒá¯áá«á ⢠áá¯ááºáá»á
ááááºá á
áœááºážáá±á¬ááºáááºá áá¶ááá¯ááºáááºááŸáááŸá¯á áá«áá«ááŸáá·áº á¡ááá¯ááºážá¡áá¬ááá¯á·á¡áá±á«áº á¡ááŒá±áá¶á á¡á
á¯á¡áá±ážáá»á¬ážááᯠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºáá«á ⢠ááá·áºá¡ááá®áá±ážááŸááºážáá»á¬ážááᯠáááºáá®ážáááºá á
ááºážáááºáááºááŸáá·áº á¡áá¯á¶ážááŒá¯ááẠá¡áá±á¬ááºážáá¯á¶ážáááááá¬áá»á¬ážááᯠáá±á·áá¬áá«á ⢠áá¯á¶ááŒá¯á¶áá±ážááŸáá·áº ááááºážáá»á¯ááºááŸá¯áá±áá»á¬á
á±ááẠáááºááŸááá¯ááºáááºážá¡áá±á·á¡áá»áá·áºáá»á¬ážááᯠá¡áá¯á¶ážáá»áá«á ⢠ááá·áºáá¯áá¹ááá®áá
áºáá¯áá¯á¶ážááœáẠDevOps á
ááºážáá»ááºážáá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááẠááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážá¡ááœá²á·áá»á¬ážááẠááá¯ááá¯ááŒá±á¬ááºážááœááºááŒááºááœááºá áá»ááºááŒááºá
áœá¬ááŸáá·áº áááá±á¬ááºá
áœá¬áá¯ááºáá±á¬ááºááá¯ááºá
á±áááºá
á á¬á¡á¯ááºá áááºáá°á·á¡ááœááºáá²á
á€á á¬á¡á¯ááºááẠáá¬áá¬áá»á¬ážá á¡ááá®áá±ážááŸááºážáá»á¬ážááŸáá·áº áááºáá±á¬ááºááŸá¯áá»á¬ážá¡ááœáẠáá¬áááºááŸáááá·áº á á®áá¶ááá·áºááœá²áá±ážáá¬ááá»á¬ážá áááºáááºážáá»á¬ážááŸáá·áº cloud áááºáá±á¬ááºááŸá¯á¡áá áºáá»á¬áž áááºáá±á¬ááºáá¬ááœáẠááá¯á·ááá¯áẠáááºááŸáá¡ááºááºáá®áá±ážááŸááºážáá»á¬ážááᯠKubernetes ááŸáá·áº cloud ááá¯á· ááœáŸá±á·ááŒá±á¬ááºážááŒááºážááœáẠáá«áááºááá·áº developer áá»á¬ážá¡ááœáẠá¡ááá·áºáá»á±á¬áºáá¯á¶ážááŒá áºáááºá á áááºááá°áá«ááŸáá·áºá Kubernetes ááá¯á·ááá¯áẠcontainers ááŸáá·áº áááºááá¯á·áá¯ááºáá±á¬ááºááááºááᯠáááºááááẠáááá¯á¡ááºáá« - áá»áœááºá¯ááºááá¯á·ááẠááá·áºá¡á¬áž á¡áá¬á¡á¬ážáá¯á¶ážááᯠáááºááŒá¬ážáá±ážáá«áááºá
á¡ááœá±á·á¡ááŒá¯á¶ááŸá Kubernetes á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááẠRBACá á ááºáááºáááŒááºá¡áá¯á¶ážááŒá¯ááŸá¯á á¡áá±ážááŒá®ážáá±á¬áá±áá¬á á®áá¶ááá·áºááœá²ááŸá¯ááŸáá·áº ááŒáá·áºááŸá¯ááá¯ááºááŸá¯áá²á·ááá¯á·áá±á¬ á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážá áááºááŸáá¯ááºážá áœá¬ ááœáŸááºážááŒá¯á¶ááŸá¯ááŸáá·áºá¡áá° áááºááá¯ážáá»á¬ážá áœá¬ááᯠááœá±á·ááŸááááºááŒá áºáááºá á á¬á¡á¯ááºáá²á· á á¬áá»ááºááŸá¬ááœá±ááŸá¬ áááºážáá²á· á¡áááºá¡áá»ááºážáá²á· á¡ááœá±á·á¡ááŒá¯á¶ááœá± áááœá²ááŒá¬ážáá² áááºážá¡ááœáẠá áááºáááºá á¬ážá áᬠáá áºáá¯áᯠáá«áááºáá¬áááºááá¯á· áá»áŸá±á¬áºááá·áºáá«áááºá
á á¬á¡á¯ááºá áá¬áá±ážááœááºážááœá±ááŒá±ááá²á
á á¬á¡á¯ááºááᯠá á®á ááºáá±ážáá¬ážáá±á ááºááœááºá áá»áœááºá¯ááºááá¯á·ááẠáá°áá¬áá±á«ááºážáá»á¬ážá áœá¬ááŸáá·áº cloud áááºážááá¬ááŸáá·áº Kubernetes ááœá±ážááœá±ážáá²á·ááŒá®ážá áá¯ááºáááºážáá±á«ááºážáá±á¬ááºáá»á¬ážá áá»áœááºážáá»ááºáá°áá»á¬ážá á¡ááœá±á·á¡ááŒá¯á¶áááŸááá±ážáá°áá»á¬ážááŸáá·áº ááœá±ážááœá±ážáá²á·ááŒáááºá á¡á±á¬ááºáá«ááá¯á·ááẠá€áá¯ááºáá±ááŸá¯ááœáẠá¡ááŒá±ááœá±á·ááá¯áá±á¬ ááœá±ážáá»ááºáá¬ážáá±á¬ áá±ážááœááºážáá»á¬ážááŒá áºáááºá
- âáááºáž áá®áááºážááá¬ááᯠáá¬ááŒá±á¬áá·áº á¡áá»áááºááŒá¯ááºážááá·áºáá²ááá¯áá¬ááᯠáá«á áááºáááºá á¬ážáááºá áááºááá¯ááŒá¿áá¬ááœá±á áá»áœááºáá±á¬á·áºááᯠáá°áá®ááŒá±ááŸááºážáá±ážááŸá¬áá²áâ
- â Kubernetes á á áááºáááºá á¬ážááá¯á·áá±á¬ááºážáá¯á¶ááááºá áá«áá±ááá·áº áááºááœáá·áºá¡ááœáẠá¡áá¬ážá¡áá®ážáá áºáá¯ááŸááááºá ááá¯ážááŸááºážáá±á¬ á¥ááá¬áá áºáá¯ááᯠááŒááºáááºááŒááºážááẠááááºáá²áá±á¬áºáááºáž áá±á¬ááºááẠá á®áá¶á¡á¯ááºáá»á¯ááºááŸá¯ááŸáá·áº á¡ááŸá¬ážááŸá¬ááŒááºááŒááºážááẠáá¯ááºááŸá¯ááºáá»á±á¬ááºáá»á¬ážá áá¬ááŒá áºáááºá áááºááœá±á·ááá¹áá¬ááŸá Kubernetes á¡á á¯á¡áá±ážáá»á¬ážááᯠáá°áá»á¬ážá á á®áá¶ááá·áºááœá²áá¯á¶ááŸáá·áº áá»áœááºá¯ááºááá¯á·ááŒá¯á¶ááœá±á·áááá·áºááŒá¿áá¬áá»á¬ážááá¯ááºáᬠáá¯á¶ááŒááºá áááºáá»ááá±á¬ á¡ááŒá¶áá¬ááºáá»á¬ážááᯠáá»áœááºá¯ááºááá¯á· ááá°ááá¯áá«áááºá"
- âáá¬áá¬áááºááá¯ááºáᬠá¡ááŒá¶áá¬ááºá á¡áá±á¬ááºá¡áá°ááŒá áºááŸá¬áá«á Kubernetes áá±áá áá áºááẠá¡áááºážá¡áá áºáá»á¬ážááᯠááœá±ážáá»ááºááẠááœá±ážáá»ááºá áá¬áá»á¬ážááœááºážáááºá áá°áá®áá²á·áááºážáááºážáá»á¬ážá áœá¬ááŸááá²á·á¡áá« áááºáá¬á¡áá±á¬ááºážáá¯á¶ážáá²ááá¯áᬠáááºáááºááá¯ááááá¯ááºááá²á áááºááá¯ááœá±ážáá»ááºáááá²á
áá±ážááœááºážá¡á¬ážáá¯á¶ážá á¡áá±ážááŒá®ážáá¯á¶ážááŒá áºáá±á¬ááºážááŒá áºááá¯ááºáááº-
- "áá»áœááºá¯ááºááá¯áá¹ááá®ááᯠáááŸá±á¬áá·áºááŸááºáá² Kubernetes ááᯠáááºááá¯á·áá¯á¶ážááá¯ááºáááºáááºážá"
áá±á¬ááºáá¯ááºáá»ááºá ááœá²á·á ááºážáá¯á¶ááŸáá·áº áá»áŸáá¯á·ááŸááºá¡áá¬ááá¹áá¯áá»á¬áž
Kubernetes á¡ááá®áá±ážááŸááºážáá áºáá¯á áá±á¬á·áá»á áºááᯠáááºážáááœá²á·á ááºážáá¯á¶á áá Ạ(ááá¯ááá¯áááºááŸá¬ á¡áá»áááºááŸáá·áºá¡áá»áŸ ááŒá±á¬ááºážáá²ááá¯ááºáá±á¬ áááºááá·áºáááºááá¯ážáá»á¬áž ááá¯á·ááá¯áẠáááºáááºáá»á¬ážááŸ) á០ááœá²áá¯ááºááá¯ááºááŸá¯ááẠá¡ááœááºá¡áá¯á¶ážáááºáá«áááºá ááœá²á·á ááºážááŸá¯áááºááá¯ážáá»á¬ážááẠáá¯á¶ááŸááºá¡á¬ážááŒáá·áº áááºáááºážáá»ááºááá¯ááºáᬠáááºáááºáá»á¬ážá ááŒááºááá¯áá¹ááá® áááºáá±á¬ááºááŸá¯ DNS ááááºá á¬áá»á¬ážááŸáá·áº á¡áá±á¬ááºá¡áá¬ážá áá á áºááŒááºážááá¯ááºáᬠá¡áá±á¬ááºá¡áá¬ážáá»á¬áž áá«áááºáááºá
áá¯ááºáá«áááºá áá«ááœá±á¡á¬ážáá¯á¶ážáá¯ááºáá²ááᯠááá¯ááºááá¯ááºááá·áºááá¯á·ááá±ááá·áº áá®áááºážáááºážá ááá¯ááºáá»á±á¬áá®ááœá±áááŒá áºáá±á¬ááºáá«áá°ážá á¥ááá¬á¡á¬ážááŒáá·áºá configuration value ááá¯ááŒá±á¬ááºážáá²ááŒááºážááẠááá·áºáá¯ááºááᯠáááºáá¶áááºáá±á¬ááºááŒá®áž á¡áá¯á¶ážááŒá¯ááẠááá¯á¡ááºáááºááŒá áºáááºá ááá¯áá±á¬ááºážáá²á·ááŒá±ááŸááºážáá»ááºáá áºáá¯ááá±á¬á· configuration ááᯠcode áá²á· ááá¯ááºážááŒá¬ážááŒá®áž file áá«ááŸááá¯áẠenvironment variables ááœá±ááá± áááºáá¬ááŒá áºááŸá¬áá«á
Kubernetes ááẠááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááᯠá á®áá¶ááá·áºááœá²ááẠááá°áá®áá±á¬ áááºážáááºážáá»á¬ážá áœá¬ááᯠáá¶á·ááá¯ážáá±ážáá«áááºá ááááŠážá áœá¬á áááºááẠpod wrapper áááºááŸááºáá»ááºáá»á¬ážááœáẠáááºááŸááºáá¬ážáá±á¬ áááºáááºážáá»áẠvariable áá»á¬ážááŸáá áºááá·áº á¡ááá®áá±ážááŸááºážááá¯á· áááºááá¯ážáá»á¬ážááᯠááŒááºáááºážááá¯ááºááẠ(á á¬áá»ááºááŸá¬ 192 ááœáẠâáááºáááºážáá»ááºááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážâ ááᯠááŒáá·áºáá«á áá¯áááá ConfigMap ááŸáá·áº Secret objects áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á configuration data ááᯠKubernetes ááœáẠááá¯ááºááá¯ááºááááºážáááºážááá¯ááºáá«áááºá
á€á¡áááºážááœááºá áá»áœááºá¯ááºááá¯á·ááẠá€á¡áá¬ááá¹áá¯áá»á¬ážááᯠá¡áá±ážá áááºáá±á·áá¬ááŒá®áž ááá¯ááºáá±á¬áºá¡ááá®áá±ážááŸááºážááᯠá¡áá¯á¶ážááŒá¯á ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááŸáá·áº á¡ááááá¯ááºááá¶áá±áá¬ááᯠá á®áá¶ááá·áºááœá²ááẠáááºááœá±á·áá»áá±á¬áá»ááºážáááºáááºážá¡áá»áá¯á·ááᯠááŒáá·áºááŸá¯áá«á
ááœá²á·á ááºážááŸá¯ááŒá±á¬ááºážáá²ááá·áºá¡áá« áá°ážááœá¶áá»á¬ážááᯠá¡ááºááááºáá¯ááºááŒááºážá
ááá·áºááœáẠá¡á á¯ááá¯ááºá¡ááŒá¯á¶ááá¯áẠááŒáá·áºáá»ááºááŸá¯áá áºáá¯ááŸááá±áááºáᯠááŒááºáá±á¬ááºááŒáá·áºáá«á áááºážá ConfigMap ááœáẠá¡áá»áá¯á·áá±á¬áááºááá¯ážáá»á¬ážááᯠáááºááŒá±á¬ááºážááá¯áá«áááºá á¡áááºá áááºááẠHelm ááá¬ážááᯠá¡áá¯á¶ážááŒá¯áá«á (á á¬áá»ááºááŸá¬ 102 ááœáẠâHelm: Package Manager for Kubernetesâ ááá¯ááŒáá·áºáá«)á áááºááẠááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááŒá±á¬ááºážáá²ááŸá¯ááᯠá¡ááá¯á¡áá»á±á¬ááºááááŸáááá¯ááºááŒá®áž áááºáááºáá±á¬ááŸáá·áºááœááºáá áºáá¯ááŒáá·áº áááºá pod shell ááᯠááŒááºáááºá áááºááá¯ááºáááºá áááºáá¡áá¯á¶ážáá»ááŸá¯áááºááŸááºáá»ááºááœáẠá¡á±á¬ááºáá«ááŸááºáá»ááºááᯠááá·áºáá«-
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") .
| sha256sum }}
á¡áá¯á¶ážáá»ááŸá¯áá¯á¶á á¶áááááºááœáẠááá¯ááá·áºááœááºážáá¬ážáá±á¬ áááºááŸááºáá»ááºáá±á¬ááºáá»á¬ážá á á áºáá±ážááŸá¯ááááºáá»á¬ážáá«ááŸááááº- ááá·áºáááºáá»ááºáá»á¬áž ááŒá±á¬ááºážáá²áá«á áá±á«ááºážáááºááᯠá¡ááºááááºáá¯ááºáááºááŒá áºáááºá á¡áááºá áááºááẠáá²á·ááááºážá¡ááá·áºááŒáŸáá·áºáááºááŒááºážááᯠáá¯ááºáá±á¬ááºáá«áá Helm ááẠááŒáá·áºáá»ááºááŸá¯ áááºááŸááºáá»áẠááŒá±á¬ááºážáá²ááœá¬ážáááºááᯠááœá±á·ááŸáááŒá®áž pod shell á¡á¬ážáá¯á¶ážááᯠááŒááºáááºá áááºáááºááŒá áºáááºá
Kubernetes ááœáẠá¡áá±ážááŒá®ážáá±á¬áá±áá¬
ConfigMap á¡áá¬ááá¹áá¯ááẠá¡á á¯á¡áá±ážáá áºáá¯á¡ááœááºáž ááœá²á·á ááºážááŸá¯áá¯á¶á á¶áá±áá¬ááᯠááááºážáááºážááŒááºážááŸáá·áº áááºáá±á¬ááºááŒááºážá¡ááœáẠááŒá±á¬ááºážááœááºááŒááºááœááºááŸááá±á¬ ááá¹ááá¬ážáá áºáᯠáá¶á·ááá¯ážáá±ážáááºááᯠáá»áœááºá¯ááºááá¯á·áááá¬ážááŒá®ážááŒá áºáááºá ááá¯á·áá±á¬áºá á¡ááá®áá±ážááŸááºážá¡áá»á¬ážá á¯ááœáẠá áá¬ážááŸááºáá»á¬áž ááá¯á·ááá¯áẠAPI áá±á¬á·áá»á¬ážáá²á·ááá¯á· á¡áá²áááºááŒá®áž á¡áá²áááºááá·áº á¡áá»ááºá¡áááºááŸááááºá áááºážááᯠConfigMap ááœááºáááºáž ááááºážáááºážáá¬ážááá¯ááºáá±á¬áºáááºáž á€ááŒá±ááŸááºážáá»ááºááẠá á¶ááŒááá¯ááºáá«á
áááºážá¡á á¬ážá Kubernetes ááẠá¡áá±ážááŒá®ážáá±á¬áá±áá¬ááᯠááááºážáááºážááẠáá®ááá¯ááºážáá¯ááºáá¬ážááá·áº á¡áá°ážá¡áá¬ááá¹áá¯á¡áá»áá¯ážá¡á á¬ážááᯠáá±ážáááº- áá»áŸáá¯á·ááŸááºáá»ááºá ááá¯á·áá±á¬ááºá áá»áœááºá¯ááºááá¯á·áááá¯ááºááŒá¡ááá®áá±ážááŸááºážááœáẠá€á¡áá¬ááá¹áá¯ááᯠáááºááá¯á·á¡áá¯á¶ážááŒá¯ááááºááᯠá¥ááá¬áá áºáá¯ááŒáá·áºááŒáá«á áá¯á·á
á áááºáááºá áá»áŸáá¯á·ááŸááºá¡áá¬ááá¹áá¯á¡ááœáẠKubernetes áááºáá®ážáááºá áºááᯠááŒáá·áºáá« (hello-secret-env/k8s/secret.yaml ááá¯ááŒáá·áºáá«)á
apiVersion: v1
kind: Secret
metadata:
name: demo-secret
stringData:
magicWord: xyzzy
á€á¥ááá¬ááœááºá magicWord áá®ážááá·áºáá±á¬á·ááẠxyzzy (en.wikipedia.org/wiki/Xyzzy_(computing)) ááŒá áºáááºá xyzzy áá°áá±á¬ á áá¬ážáá¯á¶ážááẠááœááºáá»á°áá¬áá±á¬áááœáẠáá±áá¯áá»á¡á¬ážááŒáá·áº á¡ááœááºá¡áá¯á¶ážáááºáááºá ConfigMap ááŸáá·áºáááºáá°áááºá áááºááẠáá»áŸáá¯á·ááŸááºá¡áá¬ááá¹áá¯áá áºáá¯ááœáẠáá±á¬á·ááŸáá·áºáááºááá¯ážáá»á¬ážá áœá¬ááᯠááááºážáááºážááá¯ááºáááºá á€ááœááºá ááá¯ážááŸááºážáááºá¡ááœáẠáá»áœááºá¯ááºááá¯á·ááẠáá±á¬á·áááºááá¯ážá¡ááœá²áá áºáá¯ááá¯áᬠá¡áá¯á¶ážááŒá¯áá«áááºá
áá»áŸáá¯á·ááŸááºá¡áá¬ááá¹áá¯áá»á¬ážááᯠEnvironment Variables á¡ááŒá Ạá¡áá¯á¶ážááŒá¯ááŒááºážá
ConfigMap áá²á·ááá¯á·áááºá áá»áŸáá¯á·ááŸááºá¡áá¬ááá¹áá¯ááᯠááœááºááááºáá¬ááœáẠáááºáááºážáá»ááºááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážá¡ááŒá Ạááá¯á·ááá¯áẠáááºážááá áºáá±á«áºááœáẠááá¯ááºáá áºáá¯á¡ááŒá ẠááŒá¯áá¯ááºááá¯ááºáááºá á¡á±á¬ááºáá±á¬áºááŒáá« á¥ááá¬ááœááºá Secret á០áááºááá¯ážááá¯á· áááºáááºážáá»áẠááŒá±á¬ááºážáá²ááá¯ááºáá±á¬ ááááºážááŸááºáá áºáá¯ááᯠáááºááŸááºáá±ážáá«áááºá
spec:
containers:
- name: demo
image: cloudnatived/demo:hello-secret-env
ports:
- containerPort: 8888
env:
- name: GREETING
valueFrom:
secretKeyRef:
name: demo-secret
key: magicWord
áááºáá®ážáááºá áºáá»á¬ážááá¯á¡áá¯á¶ážááŒá¯ááẠááá¯ááºááŒááá¯ááŸá±á¬ááºááŸá¯ááœáẠá¡á±á¬ááºáá« command ááá¯ááœáá·áºáá«á
kubectl apply -f hello-secret-env/k8s/
deployment.extensions "demo" configured
secret "demo-secret" created
ááááºá¡ááá¯ááºážá ááá·áºááá±á¬ááºáá¬ááœáẠááááºááá¯ááŒáá·áºááŸá¯ááẠáá±áááá¯ááºáá¬ááááºáááºážááᯠááŒáá·áºáá»ááºááŸá¯ááá¯á· áááºááá·áºááá¯á·áá«á
kubectl port-forward deploy/demo 9999:8888
Forwarding from 127.0.0.1:9999 -> 8888
Forwarding from [::1]:9999 -> 8888
ááááºá
á¬ááœáá·áºáá²á·á¡áá«
The magic word is "xyzzy"
áá»áŸáá¯á·ááŸááºá¡áá¬ááá¹áá¯áá»á¬ážááᯠááá¯ááºáá»á¬ážááá¯á· áá±ážááŒááºážá
á€á¥ááá¬ááœááºá áá»áœááºá¯ááºááá¯á·ááẠáá»áŸáá¯á·ááŸááºá¡áá¬ááá¹áá¯ááᯠááá¯ááºáá áºáá¯á¡ááŒá Ạááœááºááááºáá¬ááœáẠáá°ážááœá²áááºááŒáá«áááºá áá¯ááºááẠááá¯ááºááŒááááºážáááºážááŸá¯á hello-secret-file ááá¯ááºááœá²ááœáẠáááºááŸááááºá
áá»áŸáá¯á·ááŸááºáá»ááºááᯠááá¯ááºáá áºáá¯á¡ááŒá Ạáá»áááºáááºáááºá áá»áœááºá¯ááºááá¯á·ááẠá¡á±á¬ááºáá« á¡áá¯á¶ážáá»ááŸá¯ááᯠá¡áá¯á¶ážááŒá¯áá«áááº-
spec:
containers:
- name: demo
image: cloudnatived/demo:hello-secret-file
ports:
- containerPort: 8888
volumeMounts:
- name: demo-secret-volume
mountPath: "/secrets/"
readOnly: true
volumes:
- name: demo-secret-volume
secret:
secretName: demo-secret
p ááœáẠâConfigMap objects á០configuration files áá»á¬ážááᯠáááºáá®ážááŒááºážâ á¡ááá¯ááºážááœá²ááœáẠáá²á·ááá¯á·áááºá 240á áá»áœááºá¯ááºááá¯á·ááẠáá¯áááºáá áºáᯠ(á€ááá á¹á ááœáẠáá®ááá¯-áá»áŸáá¯á·ááŸááº-á¡áá¶á¡ááá¯ážá¡áá»ááº) ááᯠáááºáá®ážááŒá®áž áááºááŸááºáá»ááºá volumeMounts ááá¹áááŸá ááœááºááááºáá¬ááœáẠáááºážááᯠáááºáááºáá«á mountPath á¡ááœááºááẠ/secrets ááŒá áºáááºá ááá¯á·ááŒá±á¬áá·áº Kubernetes ááẠSecret object ááœáẠáááºááŸááºáá¬ážáá±á¬ áá±á¬á·/áááºááá¯ážá¡ááœá²áá áºáá¯á á®á¡ááœáẠá€ááá¯ááºááœá²ááœáẠááá¯ááºáá áºáá¯áááºáá®ážáá«áááºá
áá»áœááºá¯ááºááá¯á·áááá°áá¬ááœááºá áá»áœááºá¯ááºááá¯á·ááẠmagicWord áá¯áá±á«áºáá±á¬ áá±á¬á·áááºááá¯ážá¡ááœá²áá áºáá¯ááá¯áᬠáááºááŸááºáá±ážáá²á·áááºá ááá¯á·ááŒá±á¬áá·áº áááºáá®ážáááºá áºááẠááœááºááááºáá¬á¡ááœááºáž á¡ááááá¯ááºááá¶áá±á¬áá±áá¬ááŒáá·áº áá áºáá¯áááºážáá±á¬áááºáááº-áá®ážááá·áºááá¯áẠ/secrets/magicWord ááᯠáááºáá®ážáá±ážáááºááŒá áºáááºá
áááºááẠááááºááá°áá¬á¡ááá¯ááºáž á€áááºáá®ážáááºá áºááᯠá¡áá¯á¶ážááŒá¯áá«áá áá°áá®áá±á¬ááááºááᯠáááŸáááá·áºáááº-
The magic word is "xyzzy"
áá»áŸáá¯á·ááŸááºá¡áá¬ááá¹áá¯áá»á¬ážáááºááŒááºážá
ááááºá¡ááá¯ááºážááœááºá ConfigMap áá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááá¯ááŒáááẠkubectl describe command ááá¯á¡áá¯á¶ážááŒá¯áá²á·áááºá Secret ááŸá¬ áá®ááá¯áá² áá¯ááºááá¯á·áááá¬ážá
kubectl describe secret/demo-secret
Name: demo-secret
Namespace: default
Labels: <none>
Annotations:
Type: Opaque
Data
====
magicWord: 5 bytes
áá±áá¬ááá¯ááºááá¯áẠáááŒáááŒá±á¬ááºáž áááááŒá¯áá«á Kubernetes ááŸá áá»áŸáá¯á·ááŸááºá¡áá¬ááá¹áá¯áá»á¬ážááẠOpaque á¡áá»áá¯ážá¡á á¬ážááŒá áºáááºá ááá¯ááá¯áááºááŸá¬ áááºážááá¯á·áá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠkubectl áá±á¬áºááŒáá¬ážáá±á¬ á¡ááœááºá ááŸááºáááºážáá»á¬áž ááá¯á·ááá¯áẠterminal ááœáẠáááºážááá¯á·áá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠááŒáááŒááºážáááŸááá±á¬ááŒá±á¬áá·áº á¡áá±ážááŒá®ážáá±á¬á¡áá»ááºá¡áááºáá»á¬ážááᯠááá±á¬áºáááá±á¬áºááŒáááºáááŒá áºááá¯ááºáá«á
á¡áá±ážááŒá®ážáá±á¬áá±áá¬á áá¯ááºááŒá±á¬ááºážáá¬ážáá±á¬ YAML áá¬ážááŸááºážááá¯ááŒáá·áºááŸá¯ááẠkubectl get command ááá¯áá¯á¶ážáá«-
kubectl get secret/demo-secret -o yaml
apiVersion: v1
data:
magicWord: eHl6enk=
kind: Secret
metadata:
...
type: Opaque
á¡ááŒá±áᶠáááá
eHl6enk= áá»áœááºá¯ááºááá¯á·ááá°áááºážáááºááá¯ážááŸáá·áº áá¯á¶ážáááœá²ááŒá¬ážáá«áááºá áááºážááẠááááºáá±á¬á· base64 encoding ááœáẠáá±á¬áºááŒáá¬ážáá±á¬ áá»áŸáá¯á·ááŸááºá¡áá¬áá áºáá¯ááŒá áºáááºá Base64 ááẠá¡áá¹ááá¬ááá¯ááºážáá áºáá¯á¡áá±ááŒáá·áº áááá¬ážáá±á¬ ááœáá á¯á¶áá±áá¬ááᯠáá¯ááºáá¯ááºááẠá¡á á®á¡á ááºáá áºáá¯ááŒá áºáááºá
á¡áá±ážááŒá®ážáá±á¬á¡áá»ááºá¡áááºáá»á¬ážááẠááœáááá®ááŒá áºááŒá®áž á¡ááœááºááá¯ááºáá±á¬ááŒá±á¬áá·áº ( TLS áá¯ááºááŸááºááŒááºážáá±á¬á·áá²á·ááá¯á·áááºááŒá áºáááº)á áá»áŸáá¯á·ááŸááºá¡áá¬ááá¹áá¯áá»á¬ážááᯠbase64 áá±á¬áºáááºááŒáá·áº á¡ááŒá²ááááºážáááºážáá¬ážáááºá
á á¬áá¬áž beHl6enk= ááẠáá»áœááºá¯ááºááá¯á·ááá»áŸáá¯á·ááŸááºá áá¬ážáá¯á¶áž xyzzy á base64 áá¯ááºáá¶áá«ááºáá¬ážááŸááºážááŒá áºáááºá terminal ááœáẠbase64 âdecode command ááᯠrun ááŒááºážááŒáá·áº áááºážááá¯á á áºáá±ážááá¯ááºáááº-
echo "eHl6enk=" | base64 --decode
xyzzy
ááá¯á·ááŒá±á¬áá·áºá Kubernetes ááẠááá·áºá¡á¬áž terminal ááá¯á·ááá¯áẠááŸááºáááºážááá¯ááºáá»á¬ážááœáẠá¡ááááá¯ááºááá¶áá±á¬áá±áá¬ááᯠááá±á¬áºáááá¯ááºááŒááºážá០áá¬ááœááºáá±ážáá±á¬áºáááºážá áááºááŸááºáá¬ážáá±á¬ namespace á¡ááœááºážááŸá áá»áŸáá¯á·ááŸááºá¡áá¬ááá¹áá¯áá»á¬ážáá±á«áºááœáẠáááºááœáá·áºááŒá¯áá»ááºáá»á¬ážááŸááá«á á¡ááá¯áá«áá±áá¬ááᯠbase64ed ááŸáá·áº áá±á¬ááºááá¯ááºážááœáẠáá¯ááºáá¯ááºááá¯ááºáá«áááºá
á¡áááºá áááºááẠbase64 ááᯠá á¬áá¬ážá¡áá»áá¯á·ááᯠáá¯ááºáá¯ááºááẠááá¯á¡ááºáá«á (á¥ááá¬á áááºážááᯠáá»áŸáá¯á·ááŸááºáá¬ážáááº) á¡ááŒá±á¬ááºážááŒáá»ááºáááŸááá² base64 á¡áááá·áºááᯠá¡áá¯á¶ážááŒá¯áá«á
echo xyzzy | base64
eHl6enkK
áá»áŸáá¯á·ááŸááºá¡áá¬áá»á¬ážááᯠáááºáá±á¬ááºááŒáá·áºááŸá¯ááŒááºážá
áá»áŸáá¯á·ááŸááºá¡áá¬ááá¹áá¯áá»á¬ážááᯠáááºáá°á áááºááŒá®áž áááºážááŒááºááá¯ááºááá²á áááºážá¡á¬áž áááºáá±á¬ááºááááºážáá»á¯ááºááŸá¯ááá¹ááá¬ážáá áºáá¯ááŒá áºááá·áº RBAC á០áá¯á¶ážááŒááºááẠ(á á¬áá»ááºááŸá¬ 258 ááŸá âá¡áááºážááá¹áá¡ááŒá±áá¶á¡áá¯á¶ážááŒá¯ááœáá·áºááááºážáá»á¯ááºááŒááºážááá¯ááºáá¬áááá«ááºážâ áá¯ááºáááœá²ááœáẠáááºážááᯠá¡áá±ážá áááºááœá±ážááœá±ážáá«áááºá RBAC ááá«áá±á¬ á¡á á¯á¡áá±ážáá áºáá¯á¡á¬áž áá¯ááºáá±á¬ááºáá±áá«á ááá¯á·ááá¯áẠááœáá·áºááá¬ážáá«áá áááºá áá»áŸáá¯á·ááŸááºá¡áá¬á¡á¬ážáá¯á¶ážááᯠáááºááá·áºá¡áá¯á¶ážááŒá¯áá°áá»á¬ážááŸáá·áº ááœááºááááºáá¬áá»á¬ážááœááºáááᯠáááá¯ááºáá«ááẠ(RBAC ááá«áá² ááá·áºááœáẠáááºááá·áºáá¯ááºáá¯ááºááŸá¯á¡á á¯á¡áá±ážá០áááŸáááá·áºááŒá±á¬ááºáž áá±á¬ááºááá¯ááºážááœáẠááŸááºážááŒáá«áááº)á
Passive data encryption
Kubernetes ááẠáááºážá á¡áá»ááºá¡áááºá¡á¬ážáá¯á¶ážááᯠááááºážáááºážáá¬ážááá·áº etcd áá±áá¬áá±á·á áºááá¯á· áááºáá±á¬ááºááœáá·áºááŸááá°áá»á¬ážáá±á¬á API ááŸáá áºááá·áº áá»áŸáá¯á·ááŸááºá¡áá¬ááá¹áá¯áá»á¬ážááᯠáááºááœáá·áºááŒá¯áá»ááºáááŸááá² ááááœááºááŸááœááºáá±áá¬áá»á¬ážááᯠáááºááá¯ááºáá«ááá¬ážá
áá¬ážááŸááºáž 1.7 ááŸá á Kubernetes ááẠpassive data encryption ááᯠáá¶á·ááá¯ážáá±ážáá«áááºá ááá¯ááá¯áááºááŸá¬ etcd á¡ááœááºážááŸá á¡áá±ážááŒá®ážáá±á¬ á¡áá»ááºá¡áááºáá»á¬ážááᯠdisk ááœáẠáá¯ááºáá¯áẠááááºážáááºážáá¬ážááŒá®áž áá±áá¬áá±á·á áºááá¯á· ááá¯ááºááá¯ááºáááºáá±á¬ááºááœáá·áºááŸááá°ááŸááẠáááºááááá«á áááºážááᯠá á¬ááŸááºáááºá Kubernetes API áá¬áá¬ááœááºáᬠáá±á¬á·áá áºáᯠááá¯á¡ááºáá«áááºá á áá áºááá» á á®á ááºáááºááŸááºáá¬ážáá±á¬ á¡á á¯á¡áá±ážááœááºá passive áá¯ááºááŸááºááŒááºážááᯠááœáá·áºáá¬ážááá·áºáááºá
Passive encryption ááẠááá·áºá¡á á¯á¡áá±ážááœáẠá€áááºážááŒáá·áº á¡áá¯ááºáá¯ááºááŒááºážááŸááááŸá á á áºáá±ážááá¯ááºáááº-
kubectl describe pod -n kube-system -l component=kube-apiserver |grep encryption
--experimental-encryption-provider-config=...
á¡áááºá áááºááẠá ááºážáááº-á á¬ááŸááºá áá áº-áá¶á·ááá¯ážáá±ážáá°-ááŒááºáááºááŸá¯á¡áá¶ááᯠáááœá±á·áá«áá passive áá¯ááºááŸááºááŒááºážááᯠááœáá·áºáááºááá¯ááºáá«á Google Kubernetes Engine ááá¯á·ááá¯áẠá¡ááŒá¬ážáá±á¬ Kubernetes á á®áá¶ááá·áºááœá²ááŸá¯áááºáá±á¬ááºááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá·áºá¡áá«á áááºááá±áá¬ááᯠááá°áá®áá±á¬ááá¹ááá¬ážáá áºáá¯á¡áá¯á¶ážááŒá¯á áá¯ááºááŸááºáá¬ážáá±á¬ááŒá±á¬áá·áº á¡áá¶ááŸááááºááá¯ááºáá«á etcd á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠáá¯ááºááŸááºáá¬ážááŒááºážááŸááááŸá ááááẠáááºá Kubernetes áá±á¬ááºážáá»áá°ááŸáá·áº á á áºáá±ážáá«á
áá»áŸáá¯á·ááŸááºá¡áá»ááºá¡ááẠááááºážáááºážááŒááºážá
á¡ááœááºááááá¯ááºááœááºáá±á¬ áá»áŸáá¯á·ááŸááºá¡áá¬ááá¹áá¯áá»á¬ážáá²á·ááá¯á·áá±á¬ á¡á á¯á¡áá±ážá០áááºáá±á¬á¡áá«á០ááááºááŸá¬ážááá·áºáá±á¬ Kubernetes á¡áááºážá¡ááŒá áºá¡áá»áá¯á·ááŸááá«áááºá Helm áááºáá±áá»á¬á០áá¶á·ááá¯ážáá±ážáá¬ážááá·áº ááŸááºáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á á¡áááºážá¡ááŒá áºáá áºáá¯á¡á¬áž áá»ááºáá áºááŒááºážá០áá¬ááœááºááá¯ááºáááº-
kind: Secret
metadata:
annotations:
"helm.sh/resource-policy": keep
áá»áŸáá¯á·ááŸááºá¡áá¬ááá¹áá¯á á®áá¶ááá·áºááœá²ááŸá¯áá»á°áá¬áá»á¬áž
ááááºá¡ááá¯ááºážá០ááá°áá¬ááœááºá á¡á á¯á¡áá±ážááœáẠááááºážáááºážááŒá®ážáááºááŸáá·áº áá»ááºáá»ááºážááá¯áááᯠá¡áá±ážááŒá®ážáá±á¬ á¡áá»ááºá¡áááºáá»á¬ážááᯠááœáá·áºááŒá¯áá»ááºáááŸááá² áááºáá±á¬ááºááœáá·áºá០áá¬ááœááºáá¬ážáááºá ááá¯á·áá±á¬áº áááºáá®ážáááºá áºááá¯ááºáá»á¬ážááœáẠáááºážááá¯á·ááᯠááá¯ážááá¯ážá á¬áá¬ážá¡ááŒá Ạááááºážáááºážáá¬ážáááºá
áá¬ážááŸááºážááááºážáá»á¯ááºááŸá¯ááœááºááŸááá±á¬ ááá¯ááºáá»á¬ážááœáẠáá»áŸáá¯á·ááŸááºá¡áá»ááºá¡áááºáá»á¬ážááᯠáááºááá·áºá¡áá«áá»áŸ ááá¬ážááá·áºáá«á áááºá Kubernetes á¡á á¯á¡áá±ážááœáẠá¡áá¯á¶ážáááŒá¯áá® á€á¡áá»ááºá¡áááºááᯠáááºáááºáá²á·ááá¯á· áá¯á¶ááŒá¯á¶á áœá¬ á á®áá¶ááá·áºááœá² ááááºážáááºážááá¯ááºáááºáááºážá
ááá·áºá¡ááá®áá±ážááŸááºážáá»á¬ážááŸá á¡áá±ážááŒá®ážáá±áá¬áá»á¬ážááᯠááá¯ááºááœááºáááºá¡ááœáẠáááºááá·áºáááááᬠááá¯á·ááá¯áẠáááºážáá»á°áá¬áá»á¬ážááá¯áááᯠáááºááœá±ážáá»ááºááá¯ááºáá±á¬áºáááºáž á¡áááºážáá¯á¶áž á¡á±á¬ááºáá«áá±ážááœááºážáá»á¬ážááᯠáááºááŒá±ááẠááá¯á¡ááºáá«áá±ážáááºá
- ááááœááºááŸááœáẠáá±áá¬ááᯠááœááºá áœá¬áááºáá±á¬ááºááá¯ááºá á±ááẠáááºááá·áºáá±áá¬ááœáẠááááºážáááºážááá·áºááááºážá
- ááá·áºáááºááŸáá¡áá¯á¶ážááŒá¯áá±áá±á¬á¡ááºááºáá®áá±ážááŸááºážáá»á¬ážááœáẠá¡áá±ážááŒá®ážáá±á¬áá±áá¬ááᯠáááºááá¯á·á¡áá¯á¶ážááŒá¯ááá¯ááºáááºáááºážá
- á¡áá±ážááŒá®ážáá±á¬áá±áá¬ááᯠá¡á á¬ážááá¯ážááẠááá¯á·ááá¯áẠáááºážááŒááºááá·áºá¡áá« ááá·áºá¡ááºááºáá®áá±ážááŸááºážáá»á¬ážááœáẠáááºááá¯á·ááŒá áºááá·áºááááºážá
á á¬áá±ážááá¬áá»á¬ážá¡ááŒá±á¬ááºáž
John Arundel ááœááºááŒá°áá¬áá¯ááºáááºážááœáẠááŸá Ạ30 á¡ááœá±á·á¡ááŒá¯á¶ááŸááá±á¬ á¡ááá¯ááºáááºáá¶áá áºáŠážááŒá áºáááºá áá°ááẠá á¬á¡á¯ááºáá»á¬ážá áœá¬ááᯠáá±ážáá¬ážáá²á·ááŒá®áž ááá¯ááºáá¶á¡áá®ážáá®ážá០áá¯áá¹ááá®áá»á¬ážá áœá¬ááŸáá·áº á¡áá¯ááºááœá²áá¯ááºáᬠcloud-native infrastructure ááŸáá·áº Kubernetes ááá¯á·ááᯠá¡ááŒá¶áá±ážáá²á·áááºá á¡á¬ážáááºáá»áááºáá»á¬ážááœáẠáá°ááẠááŸáá¯ááºážá á®ážááŒááºážááᯠááŸá áºáááºáááºá áá á¹á ááá¯áá±áááºááá¬ážáá±á¬ááºážáá áºáŠážááŒá áºááŒá®áž á¡áá»á±á¬áºáááºážá¡ááŒá Ạá áá¹ááá¬ážáá®ážáááºá á¡ááºá¹ááááºá Cornwall ááŸá ááá¹áá¬áá®áá¯á¶ááŒááºá¡áááºáá±ážááœáẠáá±ááá¯ááºáááºá
Justin Domingus â Kubernetes ááŸáá·áº cloud áááºážááá¬áá»á¬ážááŒáá·áº DevOps áááºáááºážáá»ááºááœáẠáá¯ááºáá±á¬ááºáá±áá±á¬ á áá áºáá»á¬áž á á®áá¶ááá·áºááœá²áá±ážá¡ááºáá»ááºáá®áá¬á á¡ááŒááºááŸá¬ á¡áá»áááºááŒá¯ááºážáá¬á áá±á¬áºáá®áá±á¬ááºáá¬á ááŒáœááºáááºáá¬á ááœááºáá»á°áá¬ááá¯ááºááá¬ááᯠááŸá áºáááºáááºá áá«ááŸááºáááºááŒáá¯á·á Seattle ááŸá¬ á¡á¶á·ááŒá áá¬áá±á¬ááºážáá²á· ááŒá±á¬ááºáá áºáá±á¬ááºá ááá¯ááá¯á·áá±á¬ááºáá±á¬ááºážáá²á· ááá®ážáá²á· á¡áá»á áºáá¯á¶ážáá°áááºáá»ááºáž Adrienne ááá¯á·áá²á·á¡áá° áá±ááá¯ááºáá«áááºá
» á
á¬á¡á¯ááºááŸáá·áºáááºáááºáá±á¬ á¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠá¡á±á¬ááºáá«ááá·áºááœáẠááŒáá·áºááŸá¯ááá¯ááºáá«áááºá
»
»
Khabrozhiteley áá°ááœááºááá¯á¡áá¯á¶ážááŒá¯á 25% áá»áŸá±á¬á·á á»á±ážá¡ááœáẠ- Kubernetes
á
á¬á¡á¯ááºá á
áá¹áá°áá¬ážááŸááºážááᯠááœá±áá±ážáá»á±ááŒá®ážáá«á á¡á®áááºáááœááºáá
áºá
á¬á¡á¯ááºááᯠá¡á®ážáá±ážááºááŒáá·áº áá±ážááá¯á·áááºááŒá
áºáááºá
source: www.habr.com