4.9 KiB
		
	
	
	
	
	
			
		
		
	
	| title | description | weight | owner | test | 
|---|---|---|---|---|
| Розгортання демонстраційного застосунку | Розротання демонстраційного застосунку Bookinfo. | 2 | istio/wg-networking-maintainers | yes | 
Щоб дослідити Istio, ви встановите демонстраційний застосунок Bookinfo, що складається з чотирьох окремих мікросервісів, які використовуються для демонстрації різних функцій Istio.
{{< image width="50%" link="./bookinfo.svg" caption="Демонстраційний застосунок Bookinfo в Istio написаний різними мовами" >}}
У рамках цього посібника ви розгорнете застосунок Bookinfo та відкриєте сервіс productpage за допомогою ingress gateway.
Розгортання застосунку Bookinfo
Розпочніть з розгортання застосунку:
{{< text bash >}} $ kubectl apply -f {{< github_file >}}/samples/bookinfo/platform/kube/bookinfo.yaml $ kubectl apply -f {{< github_file >}}/samples/bookinfo/platform/kube/bookinfo-versions.yaml {{< /text >}}
Щоб перевірити, що застосунок працює, перевірте статус podʼів:
{{< text syntax=bash snip_id=none >}} $ kubectl get pods NAME READY STATUS RESTARTS AGE details-v1-cf74bb974-nw94k 1/1 Running 0 42s productpage-v1-87d54dd59-wl7qf 1/1 Running 0 42s ratings-v1-7c4bbf97db-rwkw5 1/1 Running 0 42s reviews-v1-5fd6d4f8f8-66j45 1/1 Running 0 42s reviews-v2-6f9b55c5db-6ts96 1/1 Running 0 42s reviews-v3-7d99fd7978-dm6mx 1/1 Running 0 42s {{< /text >}}
Щоб отримати доступ до сервісу productpage ззовні кластера, потрібно налаштувати ingress gateway.
Розгортання та налаштування ingress gateway
Ви будете використовувати Kubernetes Gateway API для розгортання шлюзу з назвою bookinfo-gateway:
{{< text syntax=bash snip_id=deploy_bookinfo_gateway >}} $ kubectl apply -f {{< github_file >}}/samples/bookinfo/gateway-api/bookinfo-gateway.yaml {{< /text >}}
Стандартно Istio створює сервіс LoadBalancer для шлюзу. Оскільки ми будемо отримувати доступ до цього шлюзу через тунель, нам не потрібен балансувальник навантаження. Змініть тип сервісу на ClusterIP, додавши анотацію до шлюзу:
{{< text syntax=bash snip_id=annotate_bookinfo_gateway >}} $ kubectl annotate gateway bookinfo-gateway networking.istio.io/service-type=ClusterIP --namespace=default {{< /text >}}
Щоб перевірити статус шлюзу, виконайте:
{{< text bash >}} $ kubectl get gateway NAME CLASS ADDRESS PROGRAMMED AGE bookinfo-gateway istio bookinfo-gateway-istio.default.svc.cluster.local True 42s {{< /text >}}
Зачекайте, поки шлюз не зʼявиться, як запрограмовано, перш ніж продовжити.
Доступ до застосунку
Ви зможете зʼєднатись з сервісом Bookinfo productpage через шлюз, який ви щойно налаштували. Щоб отримати доступ до шлюзу, використовуйте команду kubectl port-forward:
{{< text syntax=bash snip_id=none >}} $ kubectl port-forward svc/bookinfo-gateway-istio 8080:80 {{< /text >}}
Відкрийте ваш оглядач та перейдіть за адресою http://localhost:8080/productpage, щоб переглянути застосунок Bookinfo.
{{< image width="80%" link="./bookinfo-browser.png" caption="Застосунок Bookinfo" >}}
Якщо ви оновите сторінку, ви повинні побачити, як рейтинги книг змінюються, оскільки запити розподіляються між різними версіями сервісу reviews.
Подальші кроки
Перейдіть до наступного розділу, щоб додати застосунок до сервісної мережі та дізнатися, як забезпечити безпеку та візуалізувати комунікацію між застосунками.