Ingress используется для управления входящим трафиком приложений, а также для завершения SSL. Напротив, секреты используются для хранения конфиденциальной информации и сертификатов TLS для приложений.
Этот пост проиллюстрирует:
- В чем секреты Kubernetes?
- Предварительное условие: создать закрытый ключ и сертификат.
- Как создать секретный TLS в Kubernetes?
- Как создать секрет через файл Yaml?
- Как встроить секрет в Kubernetes Pod?
- Заключение
В чем секреты Kubernetes?
Секреты — это один из ресурсов Kubernetes, используемый для хранения конфиденциальной информации, такой как учетные данные пользователя, ключи, сертификаты или токены. Секреты можно создавать индивидуально и подключать к модулям. Это не позволяет разработчику предоставлять конфиденциальные данные в коде, а также обеспечивает дополнительный уровень безопасности. Можно создавать и использовать различные виды секретов. Наиболее часто используемые секреты:
Общий секрет: Общие секреты используются для хранения базовой информации, такой как пароли, токены, ключи API, ключи OAuth и т. д.
Секрет TLS: Секреты TLS используются для хранения закрытых ключей и сертификатов, подписанных центром сертификации. Чтобы обеспечить безопасность приложений, работающих внутри Kubernetes, и для защиты связи внутри кластера, пользователю обычно необходимо создать и внедрить секреты TLS в модуль.
Реестр Докера: Он используется для хранения учетных данных реестра Docker, чтобы легко извлекать изображения из реестра.
Предварительное условие: создать закрытый ключ и сертификат.
Чтобы создать сертификат и закрытый ключ для повышения безопасности, используйте OpenSSL, который создает CSR (запрос на подпись сертификата) и закрытый ключ. Затем используйте CSR для создания самозаверяющих сертификатов или сертификатов CA.
Чтобы использовать команды OpenSSL в Windows, пользователям необходимо установить Git. Для этого перейдите по нашей ссылке « Установите git в Windows ' статья.
После установки git следуйте инструкциям ниже, чтобы сгенерировать закрытый ключ и подписанный сертификат.
Шаг 1. Запустите терминал Git Bash.
Сделайте поиск « Гит Баш » в меню «Пуск» и запустите терминал:
Чтобы проверить текущий каталог, используйте « страдающий » команда:
страдающийВ настоящее время мы работаем в каталоге %USERPROFILE%:
Шаг 2. Создайте новый каталог
Создайте новый каталог для сохранения сертификатов и закрытого ключа:
мкдир сертификатПерейдите во вновь созданный каталог, используя « CD » команда:
CD сертификат
Шаг 3. Сгенерируйте закрытый ключ
Теперь сгенерируйте закрытый ключ с помощью данной команды. Здесь сгенерированный закрытый ключ будет сохранен в папке « mycert.key »:
генpключ openssl -алгоритм ЮАР -вне mycert.key
Шаг 4: Создайте CSR
Чтобы сгенерировать CSR (запрос на обслуживание сертификатов) для получения подписанного сертификата, используйте данную команду:
запрос OpenSSL -новый -ключ mycert.key -вне mycert.csr
Шаг 5: Создайте сертификат
Наконец, используя сгенерированный закрытый ключ и CSR, создайте сертификат и сохраните его в папке « mycert.crt ' файл. Для этого выполните следующую команду:
OpenSSL x509 -req -в mycert.csr -signkey mycert.key -вне mycert.crt -дней 365
После создания сертификатов TLS пользователь может создать секретный TLS, следуя инструкциям в разделе ниже.
Как создать секретный TLS в Kubernetes?
Чтобы обеспечить безопасность приложений и безопасную связь внутри и за пределами кластера Kubernetes, необходимы сертификаты TLS (Transport Layer Security), которые используются при шифровании данных. Секрет Kubernetes позволяет нам встраивать сертификат TLS в работающие модули через секретный TLS. Чтобы создать секретный TLS в Kubernetes, выполните следующие инструкции.
Шаг 1. Запустите кластер Minikube.
Чтобы запустить кластер minikube, сначала запустите Windows PowerShell от имени администратора. После этого создайте и запустите кластер с помощью команды « запуск миникуба » команда:
запуск миникуба
Шаг 2: Получите узлы
Получите доступ к узлу Kubernetes, чтобы проверить, запущен кластер или нет:
миникуб получить узлы
Шаг 3. Создайте секретный TLS
Создайте секрет TLS в Kubernetes, используя « kubectl create secret <тип секрета> <секретное имя> –cert=<путь к сертификату tls> –key=<путь к секретному ключу> команда. Здесь секретный тип может быть « универсальный ', ' спасибо ', или ' докер-реестр ». Чтобы создать секрет TLS, мы установили тип секрета как «tls»:
kubectl создать секрет TLS демо-секрет --сертификат =C:\Users\Dell\cert\mycert.crt --ключ =C:\Users\Dell\cert\mycert.key
Шаг 4: Получите секреты
Для подтверждения перечислите секрет Kubernetes, используя данную команду:
kubectl получить секретЗдесь вы можете видеть, что мы эффективно создали « демо-секрет ' который содержит ' 2 Значения данных:
Шаг 5: Опишите секрет
Чтобы просмотреть, как данные просматриваются или хранятся в секрете, опишите секрет, используя « kubectl описать секрет <секретное имя> » команда:
kubectl описывает секретный демо-секретВы можете видеть, что значения хранятся в байтах и не могут быть просмотрены напрямую, в отличие от Kubernetes ConfigMaps:
Как создать секретный TLS через файл Yaml?
Чтобы создать секретный TLS через файл yaml, сначала создайте « секрет.yml » файл, добавьте сертификат в кодировке tls base64 в ' tls.crt » и добавьте ключ в кодировке Base64 в ' tls.key ».
Для демонстрации выполните перечисленные шаги.
Шаг 1. Создайте файл Yaml
Создайте файл с именем « секрет.yml » и вставьте данный код:
APIVersion : v1данные :
tls.crt : «сертификат в кодировке Base64»
tls.key : «Ключ в кодировке Base64»
добрый : Секрет
метаданные :
имя : mytls-секрет
пространство имен : по умолчанию
тип : kubernetes.io/tls
В приведенном выше фрагменте замените значения ключей «tls.crt» и «tls.key» исходным сертификатом и значениями ключей:
Шаг 2: Создайте секрет
Теперь примените секретный файл yaml через « kubectl apply -f <путь-к-secret.yml> » команда:
kubectl применить -ф секрет.ymlВывод показывает, что мы успешно создали « mytls-секрет », используя файл yaml:
Примечание. Просмотр сертификата TLS и закрытого ключа.
Чтобы просмотреть сертификат в кодировке Base64 и использовать его в файле yaml, запустите команду « cat <путь к файлу сертификата> | база64 ” в терминале git bash:
кот mycert.crt | база64Чтобы просмотреть ключ в кодировке Base64, используйте « cat <файл пути к ключу> | база64 » команда:
кот mycert.key | база64Как встроить секретный TLS в Kubernetes Pod?
После создания секретного TSL пользователь может внедрить его в модуль Kubernetes. Для этого используйте следующие инструкции.
Шаг 1. Создайте файл Yaml
Создайте файл с именем « под.yml » и вставьте в него приведенный ниже фрагмент:
APIВерсия: v1вид: Стручок
метаданные:
название: демо-под
спецификация:
контейнеры:
- имя: html-продолжение
изображение: rafia098 / html-изображение: 1.0
окрОт:
- секретСсылка:
название: демо-секрет
В приведенном выше фрагменте:
- « добрый Ключ » указывает ресурс Kubernetes, который создает пользователь.
- « имя Клавиша ” установит имя модуля.
- « контейнеры ” будет хранить информацию о контейнере.
- « имя Клавиша «под ключом «контейнеры» установит имя контейнера.
- « изображение Ключ «предоставит образ приложения или контейнера для создания и запуска приложения внутри контейнера.
- « окр.Из Ключ ” установит переменную среды из других ресурсов Kubernetes. Вот, чтобы внедрить секретный TLS в модуль: « секретная ссылка » используется для предоставления секретной ссылки. Чтобы встроить вышеуказанный секретный TLS, укажите имя секрета в ключе «name».
Шаг 2. Создайте или обновите модуль
Далее откройте папку, в которой находится « под.yml » файл создается:
CD C:\Users\Dell\Documents\Kubernetes\Secret
Примените файл yaml для создания или перенастройки модуля с помощью « kubectl применить » команда:
kubectl применить -ф под.yml
Шаг 3. Доступ к модулям Kubernetes
Для проверки перечислите модули Kubernetes:
kubectl получить модульЗдесь вы можете видеть, что мы создали « демо-под ' успешно:
Шаг 4. Опишите модуль
Чтобы проверить, встроен ли в модуль секретный TLS или нет, опишите модуль с помощью команды ниже:
kubectl описывает модуль демонстрационного модуляВывод ниже показывает, что мы успешно внедрили секрет TLS в модуль:
Мы рассмотрели, как создать секретный TLS и внедрить его в приложение Kubernetes, работающее в модуле.
Заключение
Чтобы создать секретный TLS в Kubernetes, сначала создайте подписанный TLS сертификат и закрытый ключ. После этого запустите кластер Kubernetes и запустите команду « kubectl create secret <тип секрета> <секретное имя> –cert=<путь к сертификату tls> –key=<путь к секретному ключу> команда. Пользователи также могут создать секретный TLS, используя манифест yaml. В этом посте показано, как создать секретный TLS и как внедрить его в работающее приложение или модуль.