问题描述
我正在使用k8s部署我的docker应用。
一旦说明应用程序准备就绪需要20到30秒钟,那么应用程序很大,启动时花了一些时间。
启动平均时间为20到30秒。我想在滚动更新过程中等待60秒钟。因为目前,旧的Pod在启动新应用程序(在新Pod中)时终止。
我该怎么办?
解决方法
在pod规范中为failureThreshold * periodSeconds
配置ports:
- name: readiness-port
containerPort: 8080
hostPort: 8080
readinessProbe:
httpGet:
path: /healthz
port: readiness-port
failureThreshold: 1
periodSeconds: 10
startupProbe:
httpGet:
path: /healthz
port: readiness-port
failureThreshold: 30
periodSeconds: 10
足够长的时间以覆盖最坏情况下的启动时间。
class MapsActivity : AppCompatActivity(),OnMapReadyCallback {
private val viewModel: MapListViewModel by viewModels()
private lateinit var mMap: GoogleMap
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_maps)
}
override fun onMapReady(googleMap: GoogleMap) {
var mMap = googleMap
viewModel.mapListResults.observe(this,Observer { map ->
mMap?.clear()
map?.forEach { map ->
val latLng = LatLng(map.lat,map.lng)
val markerOptions = MarkerOptions()
markerOptions.position(latLng)
val marker = mMap.addMarker(markerOptions)
}
})}}