天天看點

Kubernetes 将應用遷移至kubernetes

Kubernetes 将應用遷移至kubernetes

之前是要将應用遷移到k8s平台上面的時候,第一步做的就是應用容器化,做應用容器化的時候要對作業系統的一些資源做對接的時候所面臨的挑戰。

完成了容器化之後面臨的挑戰就是要将應用遷移到k8s平台,這個時候考慮的問題就更加多了。

下面就是如何将應用遷移到k8s平台上面去。

pod spec

Kubernetes 将應用遷移至kubernetes

在主應用拉起之前可能需要做一系列初始化的動作,應用和應用之間是互相通信是基于jwt token的,就是要擷取token來證明我是誰,當a應用通路b應用的時候,a應用要帶着它頒發好的token去通路b應用,然後b應用會去校驗這個token是不是有效的token。token代表的應用是誰,它有沒有這樣的權限,這樣就能夠完成應用之間微服務調用的一個權限控制。

是以token是在應用啟動的時候一次性擷取的。這就是initcontainer來完成的工作,通過主container和init container之間共享同樣的一個volume。

在定義容器的時候就需要去想有哪些初始化的動作是一次性的,之後就可以看是否可以将初始化動作一次性的放到initcontainer裡面去。

初始化從container可以有很多,是一個list,自上而下順序執行。

然後應用啟動的時候要幾個主container。

容器運作的時候需要什麼權限,比如要去動作業系統上面的權限。還有可能去配置容器網絡的權限。

一個pod内有多個容器,那麼彼此之間要去做通信,天然網絡的namespace就是共享的,容器a和容器b之間直接就可以進行網絡調用,但是很多namespace是不共享的,比如pid,它們的程序彼此是隔離的,你要a容器裡面程序去控制b容器裡面的程序,那麼就是要share pid。是以要去規劃哪些namespace是需要共享的,這些都可以通過pod spec來控制。

繼續閱讀