DevSpace’e Nasıl Başlanır ve Kubernetes Ek Açıklamalarını, Etiketleri ve Seçicilerini Kullanarak Kubernetes Uygulamalarını Hızla Geliştirme Nasıl Yapılır Anchore ile Docker Görüntüleri Nasıl Güvenlik Taraması Yapılır Github Deposundan Tek Dosyalar Nasıl İndirilir Docker Depolama Sürücüleri Nedir ve Hangisini Kullanmalısınız? Docker Görüntü İmzalama Noter v2 ile Nasıl Gelişecek? MongoDB Docker Konteynerinde Nasıl Çalıştırılır

0
18

İçinde terminal sembolü olan bir bulut olan DevSpace logosunu gösteren bir çizim

DevSpace, geliştiricilerin bulutta yerel uygulamaları Kubernetes kümelerine hızla dağıtmasına yardımcı olan açık kaynaklı bir araçtır. Kod yazmaya geri dönebilmeniz için geleneksel Kubernetes karmaşıklığının çoğunu soyutlar.

DevSpace, platformdan bağımsızdır ve yerel makinenizden popüler yönetilen kamu hizmetlerine kadar çeşitli kümelerle çalışır. Araç, Kubernetes API’lerini kullanarak işlemleri otomatikleştiren bir CLI’dir. DevSpace’i kullanmak için kümenizin içine herhangi bir şey yüklemeniz gerekmez.

Kubernetes için Modern Geliştirme Uygulamaları

DevSpace, modern uygulama programlama deneyiminin birçok yönünü Kubernetes tabanlı dağıtımlara getiriyor. Otomatik çalışırken yeniden yükleme desteğiyle geliştirme ortamınızı kümenizde çalıştırmanıza olanak tanır. Yerel bir dosya değiştiğinde DevSpace, kapsayıcılarınızı yeni içerikle otomatik olarak günceller.

Yerleşik bağlantı noktası iletme, kullanabileceğiniz anlamına gelir localhost dağıtımınıza erişmek için. Gelişmiş bir geliştirici deneyimi ve daha fazla güvenlik sunan geliştirme kümelerinde bağlantı noktaları açmanız veya HTTP Girişleri kurmanız gerekmez.

DevSpace iş akışını gösteren bir diyagram
DevSpace

DevSpace de hata ayıklamaya yardımcı olur. Uzak Hata Ayıklayıcı aracını kullanarak kesme noktalarının ayarlanmasını destekler ve buluttaki kapsayıcılı uygulamaların canlı denetimini sunar. Ayrıca, hantal Kubectl komutlarını çalıştırmadan bir kapsayıcının günlüklerini görüntülemek veya bir terminal oturumu başlatmak da kolaydır.

Reklamcılık

üzerinde çalışan bir web arayüzü localhost çalışan uygulamanızı izlemenizi ve etkileşimde bulunmanızı sağlar. Daha görsel bir deneyim tercih ederseniz, terminalinizden tamamen kaçabilirsiniz.

DevSpace’i Yükleme

DevSpace, Windows, Mac ve Linux sistemlerinde çalışan bağımsız bir ikili dosya olarak dağıtılır. Birkaç kurulum seçeneği mevcuttur. Linux için DevSpace’i indirmek ve CLI’yi yolunuza eklemek için önerilen komut:

dev
sudo install devspace /usr/local/bin

Alternatif olarak, DevSpace’i kurmak ve güncellemek için Düğüm paket yöneticisi olan npm’yi kullanabilirsiniz:

npm install -g devspace

Bu komut size bir işlev verecektir. devspace yolunuza, npm’nin zaten kurulu olması şartıyla.

DevSpace aktif “KUBE_CONTEXT” Kubectl ve Helm gibi diğer ekosistem araçlarıyla aynı şekilde. Ayarlamak KUBECONFIG küme bağlantınızı tanımlayan Kubectl uyumlu bir yapılandırma dosyasına:

export KUBECONFIG=/path/to/kubeconfig.yaml

# Uses $KUBECONFIG
devspace deploy

Proje Oluşturma

DevSpace ile oluşturmanın ilk adımı proje dizininizi başlatmaktır. Bu, bir devspace.yaml deponuz için DevSpace yapılandırmasını tutan dosya.

devspace init
Reklamcılık

Kullanmayı planladığınız dağıtım rutinini seçmeniz istenecektir. DevSpace, uygulamanızı kümenize başlatırken Kubectl, Helm veya Özelleştirme ile çalışabilir.

"devspace init" komutunun ekran görüntüsü

önerilen QUICKSTART seçeneği, manuel olarak oluşturulmuş Helm çizelgeleri veya Kubectl bildirimleri sağlamak yerine ön uç web sunucunuz, arka uç API sunucunuz ve veritabanınız gibi uygulamanızın bileşenlerini tanımlamanıza izin veren özel bir grafiktir. Geleneksel bir yapıya sahip bir sistem oluşturuyorsanız ve kendi Kubernetes kaynaklarınızı oluşturmak için zaman harcamak istemiyorsanız bunu kullanın.

DevSpace’e Dockerfile’nizin yolunu sağlamak için komutları izleyin. Kayıt defteri kimlik doğrulamasını ve dinlediği bağlantı noktası gibi görüntünüzle ilgili bazı temel bilgileri sağlamanız gerekir. DevSpace, çalıştırmanıza izin veren kullanıma hazır bir yapılandırmayı otomatik olarak üretecektir. devspace deploy uygulamanızı Kubernetes’te yayınlamak için.

Hızlı başlangıç ​​seçeneğini kullanmazsanız, Helm çizelgelerinize veya Kubernetes bildirimlerinize giden yolu sağlamanız gerekir. İlk yapılandırmayı oluşturmak için istemleri izleyin. Kurulum sihirbazından çıktıktan sonra, dosyanızı manuel olarak düzenleyerek fazladan görüntüler ve dağıtımlar eklemeye devam edebilirsiniz. devspace.yaml dosya.

Resim Ekleme

DevSpace projeleri, bir veya daha fazla kapsayıcı görüntüsünden oluşturulur. Projenize bir resim kaydetmek için, onu altına ekleyin. images senin anahtarın devspace.yamldosya:

images:
  app:
    image: example.com/example/image:latest
    dockerfile: ./Dockerfile
    build:
      disabled: true

NS image alan, görüntü etiketi adını tanımlar. NS dockerfile alan isteğe bağlıdır; ayarlandığında, projenizdeki görüntünün Dockerfile yolunu referans almalıdır. Dockerfiles içeren resimler otomatik olarak oluşturulacaktır. devspace build ve devspace deploy komutlar olmadıkça build.disabled NS true resmin yapılandırmasında.

Reklamcılık

Görüntüler, performansı hızlandırmak için paralel olarak oluşturulur. NS --build-sequential flag, görüntüleri belirtilen sırayla tek tek oluşturmaya zorlar. DevSpace, bir derleme tamamlandıktan sonra her görüntüyü otomatik olarak ilgili kayıt defterine gönderir.

DevSpace, Dockerfile’larında veya derleme bağlamındaki dosyalarda bir değişiklik algılamadığı sürece görüntüler otomatik olarak yeniden oluşturulmaz. ile yapılandırılmış tüm görüntülerin yeniden oluşturulmasını zorlayabilirsiniz. --force-build bayrak.

Dağıtım Ekleme

İkinci parça bir devspace.yaml senin deployments. Bunlar, kümeniz içinde oluşturulacak kaynakları tanımlar.

deployments:
  - name: "helm chart"
    helm:
      chart:
        name: example/example-app
      values:
        VARIABLE_OVERRIDE: "new-value"
  - name: "kubectl manifests"
    kubectl:
      manifests:
        - .kube/manifests

Bu dosya, biri Helm ve diğeri Kubectl kullanan iki ayrı dağıtımı tanımlar. koştuğunda devspace deploy, hem Helm grafiği hem de Kubectl bildirimleriniz kümenize yüklenir.

tekrarlamak deploy komutu dağıtımlarınızı güncelleyecektir. DevSpace, yalnızca değişen bileşenleri yeniden dağıtır. --force-deploy bayrak kullanılır.

DevSpace kümeler arasında çalıştığından, dağıtımınızı geliştirmeden üretime yükseltmek, KUBECONFIG ortam değişkeni ve yeniden çalıştırma devspace deploy. Bu, sisteminizin birden çok bağımsız dağıtımını yönetmek için size tek bir tutarlı mekanizma sağlar.

Profilleri Kullanma

DevSpace, değiştirmenize izin veren profilleri destekler devspace.yaml ortamlarınızın her biri için bölümler. Adlandırılmış her profil, yapılandırma dosyanızdaki alanları değiştirebilir, birleştirebilir ve değiştirebilir.

Profillerin kendileri de devspace.yaml:

images:
  api-server:
    image: example.com/api-server:latest
  web-server:
    image: example.com/web-server:latest
  debug:
    image: example.com/debug-tool:latest
# ... omitted
profiles:
  - name: production
    patches:
      - op: remove
        path: images.debug
Reklamcılık

Profiller geçilerek etkinleştirilir. -p veya --profile DevSpace komutlarına bayrak. kullanarak bir dağıtımı nasıl başlatacağınız aşağıda açıklanmıştır: production yukarıda tanımlanan profil. Dağıtım şunları içermeyecek: debug profil yamalarından biri tarafından kaldırıldığı için görüntü.

devspace deploy --profile production

Sıcak Yeniden Yüklemeyi Kullanma

Çalışırken yeniden yükleme işlevi, dosya senkronizasyonu ayarlanarak etkinleştirilir:

dev:
  sync:
    - imageSelector: example.com/api-server:latest
      localSubPath: ./api/
      containerPath: /var/www/html
      excludePaths:
        - vendor/

Ekle dev anahtarınızı en üst düzey alan olarak devspace.yaml, sonra kullan sync etkin yeniden yüklemeyi görüntü bazında yapılandırmak için. NS imageSelector etkin yeniden yükleme kuralının uygulanacağı resim etiketleriyle eşleşir. Dosyalar localSubPath çalışma dizininizdeki ile senkronize edilecek containerPath dağıtılmış kapsayıcı örneklerinde.

Çalıştırarak bir sıcak yeniden yükleme oturumu başlatın devspace dev veya devspace sync. İlk komut, bağlantı noktası iletme ve canlı günlük akışı dahil olmak üzere DevSpace’in tüm geliştirici ortamı özelliklerini başlatır.

Çalışırken yeniden yükleme varsayılanları, mevcut kapsayıcılardaki dosyaları değiştirmektir. Yerel kapsayıcı örnekleriyle çalışırken Docker birimlerini ve bağlama bağlarını kullanmaya benzer. Bazı senaryolarda, dosya sisteminiz değiştiğinde yeni bir DevSpace dağıtımı başlatmak isteyebilirsiniz. Bu, ayrı olarak elde edilir autoReload seçenek:

images:
  api:
    image: example.com/api-server:latest
deployments:
  - name: api-deployment
  # ... omitted
dev:
  autoReload:
    paths:
      - ./kernel/*
    images:
      - example.com/api-server:latest
    deployments:
      - api-deployment
Reklamcılık

Bu örnek yeniden konuşlandırılacak api-deployment yerel dosyanızdaki dosyalar ne zaman kernel dizin değişikliği. Bu, kapsayıcılarınız için kullanışlı hale getirmek için bir derleme sürecinden geçirilmesi gereken dosyaları değiştirdiğinizde idealdir.

Port Yönlendirme

Bağlantı noktası iletme şu şekilde yapılandırılır: dev.ports senin alan devspace.yaml. Ters yönlendirme de desteklenir, localhost kapsayıcılarınızdaki adresler, yerel makinenizdeki bağlantı noktalarına eşlenir.

dev:
  ports:
    - imageSelector: example.com/api-server:latest
      forward:
        - port: 8080
          remotePort: 80
      reverseForward:
        - port: 9000
          remote: 9000

Bu örnek, bir ileri localhost:8080 çalıştıran kaplarda makinenizde 80 numaralı bağlantı noktasına example.com/api-server görüntü. Ayrıca, konteyner içi trafiği localhost:9000 makinenizdeki 9000 numaralı bağlantı noktasına geri dönün.

Diğer özellikler

DevSpace, burada kapsanan yeteneklerin yanı sıra, dağıtımları izlemenize, kapsayıcılarla etkileşime girmenize ve gelişmiş geliştirme iş akışlarını yapılandırmanıza olanak tanıyan birkaç başka özellik grubu için de destek sunar:

  • Otomatik terminal lansmanı her çalıştırdığınızda bir uzak kabuk oturumu başlatmanıza izin verir devspace dev.
  • Otomatik URL açma geliştirme moduna girdiğinizde tarayıcınızda web sitelerini ve web uygulamalarını başlatır.
  • Yapılandırılabilir günlük kaydı geliştirme modu günlük akışında hangi kapsayıcıların görünmesi gerektiğini tanımlar.
  • Özel komutlar yeni ekip üyelerinin Kubectl’de uzun süreçleri öğrenmesine gerek kalmadan dağıtımlarınızla etkileşim kurmasına yardımcı olarak ortak eylemlere kısayol görevi görür.
  • kancalar dağıtım işlemi sırasında komutları çalıştırarak kapsayıcıları manuel olarak yapılandırmanıza veya yeni dağıtımları merkezi bir izleme hizmetine kaydetmenize olanak tanır.
  • kullanıcı arayüzü ile geliştirme modunda otomatik olarak çalışır devspace dev ve kullanarak tarayıcınızda açılabilir devspace ui.

DevSpace ayrıca sisteme daha fazla işlevsellik katabilecek eklentiler de sunar. Eklenti API’si, uzak URL’lerden veya yerel komut dosyalarından yüklemeyi destekler ve yeni komutları, kancaları ve değişkenleri kolaylaştırır. Kendi eklentinizi geliştirmek, birden çok bağımsız projede DevSpace kullanımınızı standartlaştırmanın bir yolunu sağlar.

CI/CD Ardışık Düzenlerindeki Dağıtımlar

DevSpace, üretim dağıtımlarını CI/CD işlem hattınızın bir parçası olarak işleyebilir. Resmi bir Docker görüntüsü sağlar ve aşağıdaki gibi açık seçiciler eklerseniz etkileşimli olmayan kullanımı destekler. -l komutlarınızdaki etiket için.

Reklamcılık

Bir CI ardışık düzeni içindeki bir dağıtım şöyle görünebilir:

echo $KUBECONFIG_CI_VARIABLE > /path/to/kubeconfig
export KUBECONFIG=/path/to/kubeconfig
devspace deploy --profile production --timeout 60 --wait --skip-build

Bu, uygulamanızı kullanarak dağıtacaktır. production DevSpace profili. NS --skip-build flag DevSpace’e resimlerinizi oluşturmamasını söyler. Derlemeler genellikle ardışık düzeninizde daha önce ayrı bir aşama olarak ele alınmalıdır.

NS --wait bayrağı, DevSpace’i bilgisayarınızda belirtilen Kapsül sayısının kullanılabilirliğini beklemeye zorlar. devspace.yaml, komutu çalıştırdıktan hemen sonra sonlandırmak yerine. Bu, iş yükünüzün canlı olduğunu doğrulamak istediğiniz bir CI ortamı için daha uygundur. DevSpace’in beklemeden çıkmasına izin vermek, bir dağıtım sorunu olsa bile işlem hattınızın başarılı olarak işaretlenmesi anlamına gelebilir.

Çözüm

DevSpace, önemli işlemler için faydalı soyutlamalar sağlayan geliştirici odaklı bir Kubernetes dağıtım aracı olarak ilgi görüyor. Kapsayıcıları bir kümeye başlatmak için gereken YAML miktarını azaltarak, görüntüleri tanımlayan, oluşturan ve başlatan basit yapılandırma anahtarları ve terminal komutları ile değiştirir.

DevSpace Kullanıcı Arayüzü
DevSpace

Platformdan ve ortamdan bağımsız bir araç olarak DevSpace, geliştiricilerin bireysel kümelerin benzersiz özellikleri hakkında daha az endişelenmesine izin verir. Dağıtım hedefinden bağımsız olarak, genel deneyim, yerel makinenizde geleneksel bir sistem oluşturmaya benzer. Bu, kavramları daha evrensel olarak anlaşılan geliştirme uygulamalarıyla eşleştirerek Kubernetes öğrenme eğrisini yumuşatmaya yardımcı olur.

LEAVE A REPLY

Please enter your comment!
Please enter your name here