Adding Subsurface Modifier to Cylinder Not Smooth
Yup, topo.  More than one solution:



Left is unchanged.  Middle has control loops for the outside and the cap (your pic is missing the control loops for the cap) which can be made with 1 loop cut (ctrl r) and 1 face inset (i).  Rightmost has edges marked as sharp (ctrl e menu) and creased (shift e) for subsurf.