2017-07-19 41 views
0

我們計劃使用kubernetes,並驗證它是否符合我們的要求以及如何符合我們的要求。 一個問題是: 我想構建一個應用程序/ pod,它連接到互聯網上的某個服務(主機和端口),並且只要我們需要它(通常是永久)就保持套接字活着。應用程序將連接到的套接字數量可能會有所不同。 對於inter pod通信,我們將使用RabbitMQ。具有特定用途的固定數量的吊艙(套接字連接)

爲此目的的正確/最佳實踐方法是什麼? 一個吊艙處理所有/多個插座? 複製莢處理多個套接字? 每個吊艙一個插座? 如果插座數量發生變化,我該如何反應?

目前我們想要在我們的CI管道中使用gitlab-ci和helm。

回答

1

kubernetes部署Pod並有兩個抽象:部署和StatefulSets。前者部署主機名和IP更改的短暫Pod。後者保留國家。

如果你正在爲這個應用程序部署kubernetes 只有,這是一個過分的imho。我寧願使用普通的Docker或比Docker Swarm Mode或Kontena更簡單的kubernetes編排器。

如果kubernetes是您唯一的選擇,您可以將該應用程序部署爲StatefulSet。這樣它的主機名將保持在重新啓動之間。讓應用程序監控其主機名並連接到適當的端點。例如,app-1波德連接到endpoint:10001app-2波德連接到endpoint:10002,等等...

當需要更多的吊艙連接到多個插座,無論是手動增加StatefulSet的複製品,或者寫一個邊車的應用監視號碼。套接字和自動向上/向下複製副本。

+0

謝謝! 順便說一句:這不會是唯一的應用程序:) – psp

+0

乾杯:)另外一件事。你部署的方式取決於你需要的彈性水平和你將要擁有的k8s節點的數量。如果HA是必須的,則Pod應該部署在多個節點上。否則,只管理1個Pod,建立所有連接將變得更加容易。如果它死了,k8s會再次旋轉它。缺點是,如果節點死亡,Pod就會隨之而去。 –