Preheat your oven to 375°F (190°C). Lightly coat a 9x13-inch baking or casserole dish with cooking spray or a small amount of oil.
Bring a large pot of salted water to a boil. Cook the pasta just until al dente, about 1–2 minutes less than package instructions. Drain and set aside.
In a large skillet over medium heat, sauté the sliced kielbasa for about 4–5 minutes, or until lightly browned. Remove from the heat and set aside.
Using the same pan, melt the butter over medium heat. Stir in the flour and cook for 1 to 2 minutes, whisking constantly to create a smooth roux. Gradually pour in the milk, whisking continuously to avoid any lumps. Season the sauce with garlic powder, onion powder, salt, and pepper to taste.
Cook the sauce until thickened, about 5 minutes, then stir in 1 cup cheddar and ½ cup mozzarella until melted and smooth.
In a large mixing bowl or the pasta pot, combine the cooked pasta, browned kielbasa, and cheese sauce. Mix until everything is evenly coated. Carefully pour this creamy mixture into the greased casserole dish, spreading it evenly.
Top with the remaining ½ cup cheddar, ½ cup mozzarella, and Parmesan if using.
Bake uncovered for 20–25 minutes, or until the cheese is melted and the top is lightly golden. If you like a golden, crispy top, place the dish under the broiler for 2 to 3 minutes near the end—just keep a close eye to prevent burning.
Let the casserole cool for about 5 minutes before serving. Garnish with chopped parsley or green onions for a pop of color and flavor.