áááşášáááŹá፠Khabro ááąáááŻááşáá°ááťáŹá¸á Kubernetes áááş ááąááşáá áşááááşáááŻááşááąáá áá áşá áĄááááĄá áááşáĄáááŻááşá¸ááťáŹá¸áá˛áážáá áşááŻááźá áşáááşá á¤áááşá¸áááŹáááş áá˝ááşááááşáᏠvirtualization áĄáá˝ááş ááŻáśááźááşá áááşááťááážáŻá áĄáááŻááşá¸áĄááŹáážááˇáş ááśáááŻááşáááşáĄáŹá¸ ááąá¸ááąáŹááşáááşá John Arundel áážááˇáş Justin Domingus áááŻáˇáááş Kubernetes ááąáá áá áşáĄááźáąáŹááşá¸ áá˝áąá¸áá˝áąá¸ááźááźáŽá¸ ááąáˇá ááşááźáżááŹááťáŹá¸áĄáá˝ááş áááşááąááźááťááşááťáŹá¸áĄáŹá¸ ááááşáááşááąá¸áááşá áá áşáááˇáşááźáŽá¸áá áşáááˇáşá áááşáááş áááşááááŻááşáááŻááş cloud-native áĄááşááşááŽááąá¸áážááşá¸ááᯠáááşááąáŹááşááźáŽá¸ áááşá¸ááᯠááśáˇáááŻá¸áááş áĄááźáąááśáĄááąáŹááşáĄáĄáŻáśááᯠáááşááŽá¸áááşá áááşáááąáŹááşáááşáĄááşááşááŽááąá¸áážááşá¸ááťáŹá¸áá˝ááş áááşááŻááşááąáŹááşááąááťáááşáá˝ááş áááˇáşáĄáŹá¸ áá°ááŽááąá¸áááˇáş áá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻáááşáááşá¸ááťááşáá áşááŻáážááˇáş á ááşáááşáááźááşááźááˇáşááťááşáážáŻáááŻááşáááŻááşá¸áá áşááŻááᯠáááşááŽá¸áááşááźá áşáááşá
⢠áĄááźáąááśáážá
á áá˝ááşááááşááŹááťáŹá¸áážááˇáş 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ááááşá áŹáá˝ááˇáşáá˛áˇáĄá፠:9999/ áĄáąáŹááşááŤáááŻáˇááᯠááźááşáááŤáááşá
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-secretp áá˝ááş â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
