Problem with getting a clear and smooth glass surface
A couple of changes to default settings
The Principled BSDF shader has a default Base Color around .8, which means glass will be a little dark by default.  You can raise the base color to 1.0 for perfectly clear glass.
These dark spots -

are caused when the light reflects internally a number of times that exceeds the number of bounces allowed in render settings.

Usually it's the number of Glossy bounces which you can change here:

You can learn more listening to this talk.
To the model
When modeling for subdivision it is often to your advantage to leave your mesh as low poly as possible, and let the interpolation algorithm do the work of placing the additional vertices with mathematical precision.  Shade Smooth will do the rest by interpolating the normals between the generated faces.
Observe the following model, and see how it is represented in edit mode.

(5 levels subdivision)

The glass tubes might be easier to construct using a curve.  This takes a lot of the work out of positioning.  I added a solidify modifier to this curve.

As a bonus, the curve may serve as a constraint for animation.