Kubernetes için köprü kullanmaUse Bridge to Kubernetes

Kubernetes için köprüyü, geliştirme bilgisayarınızda çalışan Kubernetes kümeniz ve kodunuz arasında yeniden yönlendirmek için kullanabilirsiniz.You can use Bridge to Kubernetes to redirect traffic between your Kubernetes cluster and code running on your development computer. Bu kılavuz Ayrıca, bir Kubernetes kümesinde birden fazla mikro hizmet içeren büyük bir örnek uygulama dağıtmaya yönelik bir betik sağlar.This guide also provides a script for deploying a large sample application with multiple microservices on a Kubernetes cluster.

Başlamadan önceBefore you begin

Bu kılavuz, geliştirme bilgisayarınızı bir Kubernetes kümesine bağlamayı göstermek için ToDo uygulaması örnek uygulamasını kullanır.This guide uses the TODO App sample application to demonstrate connecting your development computer to a Kubernetes cluster. Zaten bir Kubernetes kümesinde çalışan bir uygulamanız varsa, aşağıdaki adımları izleyerek kendi hizmetlerinizin adlarını da kullanabilirsiniz.If you already have your own application running on a Kubernetes cluster, you can still follow the steps below and use the names of your own services.

Bu örnek, Kubernetes 'in herhangi bir Kubernetes kümesinde basit bir YAPıLACAKLAR uygulamasının mikro hizmet sürümünü geliştirmek için nasıl kullanılabileceğini gösterir.This sample illustrates how Bridge to Kubernetes can be used to develop a microservice version of a simple TODO application on any Kubernetes cluster. Bu örnek, Visual Studio 'yu kullanarak Todomvctarafından sunulan koddan uyarlanmıştır.This sample, using Visual Studio, has been adapted from code provided by TodoMVC. Bu adımlar herhangi bir Kubernetes kümesiyle birlikte çalışmalıdır.These steps should work with any Kubernetes cluster.

TODO uygulaması örneği, kalıcı depolama sağlayan bir ön uç ve arka uçta oluşur.The TODO application sample is composed of a frontend and a backend that provides persistent storage. Bu genişletilmiş örnek, bir istatistik bileşeni ekler ve uygulamayı özellikle bir dizi mikro hizmete ayırır:This extended sample adds a statistics component and breaks the application into a number of microservices, specifically:

  • Ön uç, kalıcı hale getirmek ve YAPıLACAKLAR öğelerini güncelleştirmek için Database-API ' i çağırır;The frontend calls the database-api to persist and update TODO items;
  • Veritabanı-API hizmeti, TODO öğelerini kalıcı hale getirmek için bir Mongo veritabanını kullanır;The database-api service relies on a Mongo database to persist TODO items;
  • Ön uç, bir Kbbitmq kuyruğuna olay ekleme, tamamlanma ve silme olaylarını yazar;The frontend writes add, complete, and delete events to a RabbitMQ queue;
  • Bir istatistik çalışanı, Kbbitmq kuyruğundan olayları alır ve Redsıs önbelleğini güncelleştirir;A statistics worker receives events from the RabbitMQ queue and updates a Redis cache;
  • Bir istatistik API 'SI, ön uçta görüntülenecek önbelleğe alınmış istatistikleri kullanıma sunar.A statistics API exposes the cached statistics for the frontend to show.

Tüm bu genişletilmiş TODO uygulaması, ilişkili altı bileşenden oluşur.In all, this extended TODO application is composed of six interrelated components.

ÖnkoşullarPrerequisites

Kümeyi denetleyinCheck the cluster

Bir komut istemi açın ve kubectl 'nin yüklü olduğundan ve yolun üzerine, kullanmak istediğiniz kümenin kullanılabildiğini ve hazır olduğunu ve bağlamını bu kümeye ayarlamayı denetleyin.Open a command prompt, and check that the kubectl is installed and on the path, the cluster you want to use is available and ready, and set the context to that cluster.

kubectl cluster-info
kubectl config use-context {context-name}

Burada {Context-Name}, Todo-App örneği için kullanmak istediğiniz küme bağlamının adıdır.where {context-name} is the name of the context for the cluster you want to use for the todo-app sample.

Uygulamayı dağıtmaDeploy the application

Mindaro deposunu kopyalayın ve geçerli çalışma klasörüyle örnekler/Todo-App ile bir komut penceresi açın.Clone the mindaro repo and open a command window with the current working folder to samples/todo-app.

Örnek için bir ad alanı oluşturun.Create a namespace for the sample.

kubectl create namespace todo-app

Ardından, dağıtım bildirimini Uygula:Then, apply the deployment manifest:

kubectl apply -n todo-app -f deployment.yaml

Bu, türü bir hizmet kullanarak ön ucu kullanıma sunan basit bir dağıtımdır LoadBalancer .This is a simple deployment that exposes the frontend using a service of type LoadBalancer. Tüm yığınların çalıştırılmasını ve hizmetin dış IP 'si için frontend kullanılabilir olmasını bekleyin.Wait for all the pods to be running and for the external IP of the frontend service to become available.

MiniKube ile test ediyorsanız, minikube tunnel bir dış IP 'yi çözümlemek için kullanmanız gerekir.If you are testing with MiniKube, you will need to use minikube tunnel to resolve an external IP. AKS veya başka bir bulut tabanlı Kubernetes sağlayıcısı kullanıyorsanız, otomatik olarak bir dış IP atanır.If you're using AKS or another cloud-based Kubernetes provider, an external IP is assigned automatically. frontendHizmeti çalışır duruma gelene kadar beklemek üzere izlemek için aşağıdaki komutu kullanın:Use the following command to monitor the frontend service to wait until it's up and running:

kubectl get service -n todo-app frontend --watch

NAME       TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)        AGE
frontend   LoadBalancer   10.0.245.78   20.73.226.228   80:31910/TCP   6m26s

Dış IP ve yerel bağlantı noktasını (bağlantı noktası (ler) sütunundaki ilk sayı) kullanarak uygulamaya gidin.Browse to the application using the external IP and local port (the first number in the PORT(S) column).

http://{external-ip}:{local-port}

Çalışan uygulamayı tarayıcıda test edin.Test the running app in the browser. Todo öğelerini eklerken, tamamladıktan ve sildikten sonra, istatistik sayfasının beklenen ölçümler ile güncelleştirdiğine dikkat edin.As you add, complete and delete todo items, notice that the stats page updates with the expected metrics.

Kümenize bağlanın ve bir hizmette hata ayıklayınConnect to your cluster and debug a service

Visual Studio 'da samples\todo-app\database-api\database-api.csproj açın.Open samples\todo-app\database-api\database-api.csproj in Visual Studio. Projede, aşağıda gösterildiği gibi başlatma ayarları açılır listesinden Kubernetes 'e bağla ' yı seçin.In the project, select Bridge to Kubernetes from the launch settings dropdown as shown below.

Kubernetes için köprü seçin

Kubernetes Köprüsü' nün yanındaki Başlat düğmesine tıklayın.Click on the start button next to Bridge to Kubernetes. Kubernetes Köprüsü için profil oluştur iletişim kutusunda:In the Create profile for Bridge to Kubernetes dialog:

  • Kümenizin adını seçin.Select your cluster name.
  • Ad alanınız için Todo-App ' i seçin.Select todo-app for your namespace.
  • Yeniden yönlendirileceği hizmetin veritabanı-API 'sini seçin.Select database-api for the service to redirect.
  • Daha önce tarayıcınızı başlatmak için kullandığınız URL 'yi seçin, http://{external-IP}: {local-port}Select the same URL you used previously to launch your browser, http://{external-ip}:{local-port}

Kubernetes kümesine köprü seçin

Yalıtılmış olarak çalıştırmak isteyip istemediğinizi seçin, bu da kümeyi kullanan diğer kişilerin değişiklikleriniz tarafından etkilenmeyeceğini belirtir.Choose whether or not you want to run isolated, meaning that others who are using the cluster won't be affected by your changes. Bu yalıtım modu, isteklerinizi etkilenen her hizmetin kopyasına yönlendirerek ve diğer tüm trafiği normal şekilde yönlendirerek gerçekleştirilir.This isolation mode is accomplished by routing your requests to your copy of each affected service, but routing all other traffic normally. Bu şekilde, Kubernetes Köprüsü 'Nün nasıl çalıştığıhakkında daha fazla açıklama bulabilirsiniz.More explanation on how this is done can be found at How Bridge to Kubernetes Works.

Tamam'a tıklayın.Click OK. Kubernetes kümesindeki tüm trafik, veritabanı-API hizmeti için geliştirme bilgisayarınızda çalışan uygulamanızın sürümüne yeniden yönlendirilir.All traffic in the Kubernetes cluster is redirected for the database-api service to the version of your application running in your development computer. Kubernetes Köprüsü Ayrıca uygulamadaki tüm giden trafiği Kubernetes kümenize geri yönlendirir.Bridge to Kubernetes also routes all outbound traffic from the application back to your Kubernetes cluster.

Not

Endpointmanager 'ın yükseltilmiş çalışmasına ve hosts dosyanızı değiştirmesine izin vermeniz istenir.You will be prompted to allow the EndpointManager to run elevated and modify your hosts file.

Geliştirme Bilgisayarınız, durum çubuğu hizmete bağlı olduğunuz zaman görüntülenir database-api .Your development computer is connected when the status bar shows you are connected to the database-api service.

Geliştirme bilgisayarı bağlı

Not

Sonraki başlangıçlarda, Kubernetes Için köprü oluştur iletişim kutusuna sorulmayacaktır.On subsequent launches, you will not be prompted with the Create profile for Bridge to Kubernetes dialog. Bu ayarları proje özelliklerindeki hata ayıklamada güncelleştirebilirsiniz.You update these settings in the Debug in the project properties.

Geliştirme Bilgisayarınız bağlandıktan sonra, değiştirmek istediğiniz hizmet için trafik geliştirme bilgisayarınıza yeniden yönlendirmeye başlar.Once your development computer is connected, traffic starts redirecting to your development computer for the service you are replacing.

Not

Hata ayıklama profilini daha sonra düzenlemek için örneğin, farklı bir Kubernetes hizmeti ile test etmek istiyorsanız, hata ayıklama özelliklerini Hata Ayıkla' yı seçin > ve Değiştir düğmesine tıklayın.To edit the debug profile later, for example, if you want to test with a different Kubernetes service, choose Debug > Debug Properties, and click the Change button.

Kesme noktası ayarlamaSet a break point

MongoHelper. cs dosyasını açın ve imlecinizi buraya yerleştirmek için CreateTask yönteminde satır 68 ' de bir yere tıklayın.Open MongoHelper.cs and click somewhere on line 68 in the CreateTask method to put your cursor there. F9 tuşuna basarak veya hata ayıklama > geçiş kesme noktası seçeneğini belirleyerek bir kesme noktası ayarlayın.Set a breakpoint by hitting F9 or selecting Debug > Toggle Breakpoint.

Ortak URL 'YI (ön uç hizmeti için dış IP adresi) açarak örnek uygulamaya gidin.Navigate to the sample application by opening the public URL (the external IP address for the frontend service). Hizmeti sürdürmek için F5 tuşuna basın veya devam Ayıkla' ya tıklayın > .To resume the service, hit F5 or click Debug > Continue.

Kesme noktası ile imlecinizi çizgiye yerleştirerek kesme noktasını kaldırın ve F9 tuşuna basın.Remove the breakpoint by putting your cursor on the line with the breakpoint and hitting F9.

Not

Varsayılan olarak, hata ayıklama görevinin durdurulması geliştirme bilgisayarınızı Kubernetes kümenizdeki bağlantısını da keser.By default, stopping the debugging task also disconnects your development computer from your Kubernetes cluster. false Araç seçenekleri iletişim kutusunun Kubernetes hata ayıklama araçları bölümünde öğesine hata ayıkladıktan sonra bağlantı kesmeyi değiştirerek bu davranışı değiştirebilirsiniz > .You can change this behavior by changing Disconnect after debugging to false in the Kubernetes Debugging Tools section of the Tools > Options dialog. Bu ayar güncelleştirildikten sonra, hata ayıklamayı durdurup başlattığınızda geliştirme Bilgisayarınız bağlı kalır.After updating this setting, your development computer will remain connected when you stop and start debugging. Geliştirme bilgisayarınızı sizin kümenize kesmek için, araç çubuğundaki bağlantıyı kes düğmesine tıklayın.To disconnect your development computer from you cluster click on the Disconnect button on the toolbar.

Kubernetes hata ayıklama seçeneklerinin ekran görüntüsü

Ek yapılandırmaAdditional configuration

Kubernetes Köprüsü, herhangi bir ek yapılandırma olmadan yönlendirme trafiğini işleyebilir ve ortam değişkenlerini çoğaltebilirler.Bridge to Kubernetes can handle routing traffic and replicating environment variables without any additional configuration. Kubernetes kümenizdeki kapsayıcıya bağlanmış herhangi bir dosyayı ConfigMap dosyası gibi indirmeniz gerekiyorsa, KubernetesLocalProcessConfig.yaml Bu dosyaları geliştirme bilgisayarınıza indirmek için bir oluşturabilirsiniz.If you need to download any files that are mounted to the container in your Kubernetes cluster, such as a ConfigMap file, you can create a KubernetesLocalProcessConfig.yaml to download those files to your development computer. Daha fazla bilgi için, Kubernetes Köprüsü için ile birlikte ek yapılandırma Için KubernetesLocalProcessConfig. YAML kullanmakonusuna bakın.For more information, see Using KubernetesLocalProcessConfig.yaml for additional configuration with for Bridge to Kubernetes.

Günlüğe kaydetme ve tanılama kullanmaUsing logging and diagnostics

Tanılama günlüklerini, Bridge to Kubernetes geliştirme bilgisayarınızın geçici dizininde bulunan dizinde bulabilirsiniz.You can find the diagnostic logs in Bridge to Kubernetes directory in your development computer's TEMP directory.

Sonraki adımlarNext steps

Kubernetes ile köprünün nasıl çalıştığını öğrenin.Learn how Bridge to Kubernetes works.