This is always such a problem with knits, especially if there's little to negative ease in the pattern, but often even with knits that seemingly have plenty of ease. It's one of the biggest problems when working with knits; it used to drive me mad sometimes when working with client garments, and I'd have to try two or three times to find the simplest, lightest finish that would still do the job.
The usual problem is that the buttons are pulling on the one or two stitches in the knit, and these stitches aren't firm enough nor connected enough to each other to not pull out towards the other side of the garment. Therefore, you want to try and give some firmness to the fabric under the button and sometimes also the button hole.
The bigger the button, the bigger the pull, and the more necessary you must give some support to the place where the threads attach the button.
Examine the closed garment carefully and try to figure out where the "pull" is happening. Is it where the buttons are attached? Is it pulling open on the buttonhole side? Or both sides? Is the pull spot involving only under the button, or is it also pulling the lines of the button band out of whack?
You can try using a small circle of a non-fraying fabric (such as a felt) on the inside of the garment and sew through the garment into the circle.
Next up is using a small plain button on the inside as the circle of felt above, but sewing through the holes of the button on top through to the holes on the button on the inside, so there's a wider dispersion of the pull against the garment.
With both of the above, you'll want to make sure you sew the button on using a "shank" of thread, rather than sewing it close to the fabric.
For those who might not know how to do this, it's more or less like this: leave some looseness on both sides of the fabric (I generally use a pin on the top of the button and make sure my thread runs on the outside of that to give a uniform amount of thread) while sewing. Then bring your needle between the button and that same side of the fabric, and wind the thread around the loose shank a few times to give it more strength. Bring your needle to the other side of the fabric between the fabric and the back button, and also wind that shank. (Sorry, a picture's worth a thousand words, but I haven't a pic at the moment, but you should be able to google it.)
If necessary (and you have to see the garment to figure out how it's pulling to know if you need it), you can sometimes use a narrow sewn-down ribbon on one or both edges of the button bands, depending upon the garment, or even sometimes a wide grosgrain ribbon the width of your band, to face or interface the band. (You'd want to take a look and see whether it seems to be the buttons pulling or the buttonholes and inter/face that side first.)
If you use a wide grosgrain ribbon, you'll want to cut the buttonholes into the ribbon and then hand-stitch the buttonhole in the garment to the slit in the ribbon.
Hope something in that helps!