Not the standard approach to a Bearing this model begins with 2D Representations of each race component and uses rotate_extrude to build up the 3D Body.

Sometimes, if we know the shape is going to be uniform around an axis, it may be easier to create the shape in 2 dimensions. When the shape is complete we can use rotate_extrude to build up the 3d model. This is the approach used in many full feature CAD system. This sample is made as an example of the approach.

We can use the 2d system where it seems appropriate and, after they are extruded into 3d, add the 3d components.

Here is all the code to create this model, you can copy and paste this code directly into you OpenSCAD editor.
rotate_extrude($fn=50){
difference() {
translate([10, 0, 0]){
square([10, 9], center=true);
}
translate([15, 0, 0]){
circle(r=5);
}
}
difference() {
translate([20, 0, 0]){
square([10, 9], center=true);
}
translate([15, 0, 0]){
circle(r=5);
}
}
}
for (i = [1 : abs(1) : 10]) {
rotate([0, 0, (i * 36)]){
translate([15, 0, 0]){
{
$fn=50; //set sides to 50
sphere(r=4.5);
}
}