ConfigMapit ja Secretit määrityksiä varten
Hallitse sovelluksen määrityksiä ja arkaluonteisia tietoja turvallisesti Kubernetesin ConfigMap- ja Secret-resurssien avulla.
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/apiConfigMap: 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=MyWebAppConfigMap 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_urlConfigMap 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-settingsTutustuminen 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 encodedSecret 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: passwordSecret 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-credentialsConfigMaps 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.
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
- Persistent Volumet ja Persistent Volume Claimit
- Tilallisten sovellusten hallinta StatefulSetien avulla
- ConfigMapit ja Secretit määrityksiä varten
- StorageClassit ja dynaaminen varaus