Docker ja Kubernetes kehittäjille · Oppitunti

ConfigMapit ja Secretit määrityksiä varten

Hallitse sovelluksen määrityksiä ja arkaluonteisia tietoja turvallisesti Kubernetesin ConfigMap- ja Secret-resurssien avulla.

Oppitunti 3/412 vaihetta

ConfigMapit ja Secretit määrityksiä varten on ilmainen Docker ja Kubernetes kehittäjille-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Docker ja Kubernetes kehittäjille-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Docker ja Kubernetes kehittäjille-kurssilla on yhteensä 4 oppituntia.

Määrityksiin liittyvät haasteet

Sovellusten määritysten ja arkaluontoisten tietojen hallinta voi olla hankalaa etenkin Kubernetesin kaltaisissa dynaamisissa ympäristöissä.

Arvojen kovakoodaaminen näköistiedostoihin heikentää niiden uudelleenkäytettävyyttä. Salaisuuksien tallentaminen suoraan Gitiin on tietoturvariski.

Kubernetes tarjoaa kaksi tehokasta resurssia näiden haasteiden ratkaisemiseen: ConfigMaps ja Secrets.

Tutustuminen ConfigMaps-resursseihin

ConfigMap on API-objekti, jota käytetään ei-arkaluontoisten määritystietojen tallentamiseen avain–arvo-pareina.

Voitte ajatella sitä keskitettynä paikkana esimerkiksi tietokannan isäntänimille, lokitustasoille ja API-päätepisteille.

  • Erottaa määritykset sovelluskoodista.
  • Mahdollistaa päivitykset ilman näköistiedostojen uudelleenrakentamista.
  • Voidaan käyttää ympäristömuuttujina tai liittää tiedostoina.

ConfigMap: literaaliarvot

Voitte luoda ConfigMap-resurssin suoraan YAML-tiedostossa määritetyistä literaalisista avain–arvo-pareista. Tämä sopii erinomaisesti yksinkertaisille ja suoraviivaisille asetuksille.

Tässä on esimerkki sovelluksen asetuksista:

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-settings
data:
  log_level: INFO
  feature_flag_a: "true"
  api_url: http://backend-service/api

ConfigMap: tiedostoista

Monimutkaisempia määrityksiä varten voitte luoda ConfigMap-resurssin kokonaisesta tiedostosta.

Jos käytettävissänne on config.properties-tiedosto, sen sisältö voidaan upottaa suoraan ConfigMap-resurssiin. Tuloksena oleva ConfigMap näyttää tältä:

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config-from-file
data:
  config.properties: |
    database.host=db-service
    database.port=5432
    application.name=MyWebApp

ConfigMap ympäristömuuttujina

Yleisin tapa käyttää ConfigMap-resurssia on välittää sen tiedot Podien ympäristömuuttujiksi.

Tällöin sovellus voi lukea määritysarvot suoraan.

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod
spec:
  containers:
  - name: my-container
    image: nginx
    env:
    - name: LOG_LEVEL
      valueFrom:
        configMapKeyRef:
          name: app-settings
          key: log_level
    - name: API_URL
      valueFrom:
        configMapKeyRef:
          name: app-settings
          key: api_url

ConfigMap liitettyinä levyinä

ConfigMap-resurssin tiedot voidaan myös liittää tiedostoina Podin tiedostojärjestelmään. Tämä sopii ihanteellisesti sovelluksille, jotka lukevat määritykset tiedostoista.

Jokaisesta ConfigMap-resurssin avaimesta tulee tiedosto määritettyyn mountPath-polkuun. Esimerkiksi log_level sijaitsee polussa /etc/config/log_level.

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod-volume
spec:
  containers:
  - name: my-container
    image: nginx
    volumeMounts:
    - name: config-volume
      mountPath: "/etc/config"
  volumes:
  - name: config-volume
    configMap:
      name: app-settings

Tutustuminen Secrets-resursseihin

Secret muistuttaa ConfigMap-resurssia, mutta se on tarkoitettu arkaluontoisille tiedoille, kuten salasanoille, API-avaimille ja TLS-varmenteille.

Secret-resurssit tallennetaan Kubernetesissa base64-koodatussa muodossa, mutta tämä EI ole salausta. Kyse on vain turvallista siirtoa varten käytettävästä koodauksesta.

  • Tarjoaa tavan arkaluontoisten tietojen jakamiseen.
  • Käytetään kuten ConfigMap-resursseja (ympäristömuuttujina tai liitettyinä levyinä).
  • Niitä tulee aina hallita huolellisesti ja käyttöoikeuksia valvoen.

Secret: literaaliarvot

Secret-resurssit luodaan samalla tavalla kuin ConfigMap-resurssit, mutta niiden data-arvot ovat base64-koodattuja. Koodausta käytetään turvalliseen siirtoon, ei salaukseen.

Jos salasananne on esimerkiksi "my-secure-password", sen base64-koodaus on "bXktc2VjdXJlLXBhc3N3b3Jk".

apiVersion: v1
kind: Secret
metadata:
  name: db-credentials
type: Opaque
data:
  username: dXNlcg== # 'user' base64 encoded
  password: bXktc2VjdXJlLXBhc3N3b3Jk # 'my-secure-password' base64 encoded

Secret ympäristömuuttujina

Secret-resursseja voidaan käyttää ympäristömuuttujina aivan kuten ConfigMap-resursseja. Kubernetes purkaa base64-arvon automaattisesti säilöä varten.

Näin arkaluontoiset tiedot ovat sovelluksen käytettävissä ilman, että niitä tarvitsee kovakoodata suoraan näköistiedostoon.

apiVersion: v1
kind: Pod
metadata:
  name: my-db-app
spec:
  containers:
  - name: my-container
    image: my-app:1.0
    env:
    - name: DB_USERNAME
      valueFrom:
        secretKeyRef:
          name: db-credentials
          key: username
    - name: DB_PASSWORD
      valueFrom:
        secretKeyRef:
          name: db-credentials
          key: password

Secret liitettyinä levyinä

Secret-resurssien liittäminen tiedostoina on usein suositeltavaa arkaluontoisille tiedoille, koska se rajoittaa salaisuuden altistumista sovellusprosessille.

Liitetyt tiedostot sisältävät puretut (selväkieliset) salaisuuden arvot, ja voitte määrittää ne vain luku -tilaan.

apiVersion: v1
kind: Pod
metadata:
  name: my-secure-app
spec:
  containers:
  - name: my-container
    image: my-app:1.0
    volumeMounts:
    - name: secret-volume
      mountPath: "/etc/secrets"
      readOnly: true
  volumes:
  - name: secret-volume
    secret:
      secretName: db-credentials

ConfigMaps vai Secrets

Teidän on tallennettava kolmannen osapuolen palvelun API-avain ja sovelluksen lokitustason määritys. Mitä Kubernetes-resursseja käyttäisitte kumpaankin?

Kertaus: määritykset ja salaisuudet

Olemme oppineet, miten ConfigMap- ja Secret-resurssit auttavat hallitsemaan Kubernetesin määrityksiä ja arkaluontoisia tietoja.

  • ConfigMaps tallentavat ei-arkaluontoisia avain–arvo-pareja.
  • Secrets tallentavat arkaluontoisia tietoja base64-koodattuina (ei salattuina).
  • Molempia voidaan käyttää Podien ympäristömuuttujina tai liitettyinä tiedostoina.
  • Niiden avulla määritykset erotetaan sovelluslogiikasta, mikä parantaa joustavuutta ja tietoturvaa.
Aloita maksutta

Opi Docker ja Kubernetes kehittäjille tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”ConfigMapit ja Secretit määrityksiä varten” ilmainen?

Kyllä – oppitunnin ”ConfigMapit ja Secretit määrityksiä varten” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Docker ja Kubernetes kehittäjille-kurssin, päivitä CoddyKit PROhon. Docker ja Kubernetes kehittäjille-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”ConfigMapit ja Secretit määrityksiä varten”?

Hallitse sovelluksen määrityksiä ja arkaluonteisia tietoja turvallisesti Kubernetesin ConfigMap- ja Secret-resurssien avulla. Harjoittelet Docker ja Kubernetes kehittäjille-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Docker ja Kubernetes kehittäjille-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Docker ja Kubernetes kehittäjille-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”ConfigMapit ja Secretit määrityksiä varten”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Docker ja Kubernetes kehittäjille-oppitunnilla?

Kyllä. Jokainen Docker ja Kubernetes kehittäjille-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Persistent Volumet ja Persistent Volume Claimit
  2. Tilallisten sovellusten hallinta StatefulSetien avulla
  3. ConfigMapit ja Secretit määrityksiä varten
  4. StorageClassit ja dynaaminen varaus
← Takaisin: Docker ja Kubernetes kehittäjille