Ingress се използва за управление на входящия трафик на приложението, а също и за прекратяване на SSL. За разлика от това, тайните се използват за съхраняване на поверителна информация и TLS сертификати за приложение.
Тази публикация ще илюстрира:
- Какви са тайните на Kubernetes?
- Предпоставка: Генерирайте частен ключ и сертификат
- Как да създадете таен TLS в Kubernetes?
- Как да създадете тайна чрез Yaml файл?
- Как да вградите Secret с Kubernetes Pod?
- Заключение
Какви са тайните на Kubernetes?
Тайните са един от ресурсите на Kubernetes, използван за съхраняване на поверителна информация като потребителски идентификационни данни за вход, ключове, сертификати или токени. Тайните могат да бъдат създадени индивидуално и свързани с подс. Той не позволява на разработчика да предоставя поверителни данни в код и също така осигурява допълнителен слой на сигурност. Могат да се създават и използват различни видове тайни. Най-често използваните тайни са:
Обща тайна: Общите тайни се използват за съхраняване на основна информация като пароли, токени, API ключове, OAuth ключове и т.н.
TLS Secret: TLS тайните се използват за съхраняване на частни ключове и сертификати, които са подписани от CA. За да се гарантира сигурността на приложенията, работещи в Kubernetes, и за осигуряване на комуникация в рамките на клъстера, потребителят обикновено трябва да създаде и вгради TLS тайни в под.
Докер регистър: Използва се за съхраняване на идентификационните данни на регистъра на докерите за лесно изтегляне на изображенията от регистъра.
Предпоставка: Генерирайте частен ключ и сертификат
За да създадете сертификат и частен ключ за подобряване на сигурността, използвайте OpenSSL, който създава CSR (заявка за подписване на сертификат) и частен ключ. След това използвайте CSR, за да генерирате самоподписани или CA сертификати.
За да използват командите OpenSSL в Windows, потребителите трябва да инсталират Git. За целта следвайте нашия свързан “ Инсталирайте git на Windows ” статия.
След като инсталирате git, следвайте инструкциите по-долу, за да генерирате частен ключ и подписан сертификат.
Стъпка 1: Стартирайте Git Bash Terminal
Направете търсене за „ Git Bash ” в менюто Старт и стартирайте терминала:
За да проверите текущата директория, използвайте „ pwd ” команда:
pwdВ момента работим в директорията %USERPROFILE%:
Стъпка 2: Създайте нова директория
Създайте нова директория, за да запазите сертификатите и личния ключ:
mkdir сертПридвижете се до новосъздадената директория, като използвате „ cd ” команда:
cd серт
Стъпка 3: Генерирайте частен ключ
Сега генерирайте частния ключ чрез дадената команда. Тук генерираният частен ключ ще бъде записан в „ mycert.key ”:
openssl genpkey - алгоритъм RSA -вън mycert.key
Стъпка 4: Генерирайте CSR
За да генерирате CSR (заявка за услуга на сертификат), за да получите подписан сертификат, използвайте дадената команда:
openssl req -ново - ключ mycert.key -вън mycert.csr
Стъпка 5: Генериране на сертификат
И накрая, като използвате генерирания частен ключ и CSR, създайте сертификат и го запазете в „ mycert.crt ” файл. За тази цел изпълнете командата по-долу:
openssl x509 -изискване -във mycert.csr -ключ за знак mycert.key -вън mycert.crt -дни 365
След генериране на TLS сертификати, потребителят може да създаде тайния TLS, като следва раздела по-долу.
Как да създадете таен TLS в Kubernetes?
За да се гарантира сигурността на приложението и сигурната комуникация в и извън клъстера Kubernetes, TLS (сигурност на транспортния слой) сертификати са от съществено значение, които се използват при криптиране на данни. Тайната на Kubernetes ни позволява да вградим TLS сертификата с работещи модули чрез таен TLS. За да създадете таен TLS в Kubernetes, преминете през следните инструкции.
Стъпка 1: Стартирайте Minikube Cluster
За да стартирате клъстера minikube, първо стартирайте Windows PowerShell като администратор. След това създайте и стартирайте клъстера, като използвате „ minikube старт ” команда:
minikube старт
Стъпка 2: Вземете възли
Достъп до възела на Kubernetes, за да проверите дали клъстерът е стартиран или не:
minikube получава възли
Стъпка 3: Създайте таен TLS
Създайте TLS тайната в Kubernetes, като използвате „ kubectl create secret
Стъпка 4: Вземете тайни
За потвърждение избройте тайната на Kubernetes, като използвате дадената команда:
kubectl получи тайнаТук можете да видите, че ефективно създадохме „ демо-тайна ', който съдържа ' 2 ” стойности на данните:
Стъпка 5: Опишете тайната
За да видите как данните се преглеждат или съхраняват в тайна, опишете тайната с помощта на „ kubectl описва тайна <тайно-име> ” команда:
kubectl описва тайна демо-тайнаМожете да видите, че стойностите се съхраняват в байтове и не могат да се преглеждат директно за разлика от Kubernetes ConfigMaps:
Как да създадете таен TLS чрез Yaml файл?
За да създадете таен TLS чрез yaml файл, първо създайте „ secret.yml ” файл, добавете tls base64 кодиран сертификат в „ tls.crt ” и добавете base64 кодиран ключ в „ tls.key ”.
За демонстрация следвайте изброените стъпки.
Стъпка 1: Създайте Yaml файл
Създайте файл с име „ secret.yml ” и поставете дадения код:
apiVersion : v1данни :
tls.crt : 'base64 кодиран сертификат'
tls.key : 'base64 кодиран ключ'
мил : Тайна
метаданни :
име : mytls-тайна
пространство от имена : по подразбиране
Тип : kubernetes.io/tls
В горния фрагмент заменете стойностите на ключовете „tls.crt“ и „tls.key“ с вашия оригинален сертификат и стойности на ключове:
Стъпка 2: Създайте тайна
Сега приложете тайния yaml файл чрез „ kubectl apply -f
Резултатът показва, че успешно сме създали „ mytls-тайна ” с помощта на yaml файл:
Забележка: Вижте TLS сертификат и личен ключ
За да видите base64 кодирания сертификат и да го използвате в yaml файла, стартирайте „ cat <път към файл със сертификат> | база64 ” в терминала git bash:
котка mycert.crt | база64За да видите base64 кодирания ключ, използвайте „ cat <файл път към ключ> | база64 ” команда:
котка mycert.key | база64Как да вградите Secret TLS с Kubernetes Pod?
След като създаде тайния TSL, потребителят може да го вгради с Kubernetes pod. За да направите това, използвайте следните инструкции.
Стъпка 1: Създайте Yaml файл
Направете файл с име ' pod.yml ” и поставете фрагмента по-долу във файла:
apiВерсия: v1вид: Pod
метаданни:
име: demo-pod
спецификация:
контейнери:
- име: html-конт
изображение: rafia098 / html-img: 1.0
envFrom:
- secretRef:
име: демо-тайна
В горния фрагмент:
- “ мил ” ключът указва ресурса на Kubernetes, който потребителят създава.
- “ име ” ще зададе името на капсулата.
- “ контейнери ” ще съхранява информацията за контейнера.
- “ име ” под бутона „контейнери” ще зададе името на контейнера.
- “ изображение ” ще предостави изображението на приложението или контейнера за създаване и стартиране на приложението вътре в контейнера.
- “ envFrom ” ще зададе променливата на средата от други ресурси на Kubernetes. Тук, за да вградите тайния TLS в под, ' secretRef ” се използва за предоставяне на секретна справка. За да вградите горния таен TLS, посочете името на тайната в ключа „име“.
Стъпка 2: Създайте или надстройте Pod
След това отворете папката, където е „ pod.yml ” се създава файл:
cd C:\Users\Dell\Documents\Kubernetes\Secret
Приложете файла yaml, за да създадете или преконфигурирате pod с помощта на „ kubectl се прилага ” команда:
kubectl се прилага -f pod.yml
Стъпка 3: Достъп до Kubernetes Pods
За потвърждение избройте Kubernetes pods:
kubectl вземете подТук можете да видите, че създадохме „ демо-под ” успешно:
Стъпка 4: Опишете Pod
За да проверите дали групата има вграден тайния TLS или не, опишете групата с помощта на командата по-долу:
kubectl описва под демо-подРезултатът по-долу показва, че успешно сме вградили TLS тайната с pod:
Разгледахме как да създадем таен TLS и да го вградим в приложението Kubernetes, работещо в под.
Заключение
За да създадете тайния TLS в Kubernetes, първо създайте TLS подписан сертификат и частен ключ. След това стартирайте клъстера Kubernetes и стартирайте „ kubectl create secret