Your first action is to identify what you need in the guest profile you fill in on the cruise company's website once you have registered for a cruise. If you require Kosher or gluten-free meals, they can be provided for you as long as you let the cruise company know four weeks in advance. If you are booked for a cruise, do this now! If you have ANY questions about having your needs met, don't wait until you are on the ship, phone your travel agent or the cruise line today and discuss this with them - better to know in advance what is possible than to have surprises once on board.
You will notice that vegetarian and vegan diets are not listed on the guest profile as cruise companies work to meet these needs every day on every cruise. There is always a selection of fresh fruit and salads on the buffet and two or three vegetarian selection in the restaurants. The secret, whether you eat in the restaurants or buffet, is to get to know the head waiters. They will consult with you about which items on offer meet your needs and what they can do for you if there are none that interest you. In the restaurant, the head waiter can bring you the next day's menu and help you make a selection that works - or they can help you order off menu. There always seems to be excellent vegetable stir fry and curries to order and the kitchen will go out of its way to meet your needs - you just need to identify what you require as soon as possible. Head waiters are programmed to produce acceptable solutions to each guest's dietary needs so your request will not be the first they have had.
At the buffet, talk to the servers behind the line and if they are not able to help you identify vegetarian or vegan options then ask what else they can make for you - the kitchen is not far away and can make off menu items just like in the restaurant. I have found that working with the same waitstaff each evening means that they remember your needs and will more readily be able to help you. In the regular restaurant this will not be a problem. In the "Anytime Dining" restaurant where you may be seated anywhere, you are going to want to sit in the section with the same head waiter so he/she knows what your requirements are. In the buffet line, try to speak to the same servers or locate the same head waiter on the floor to deal with.
As with anything else on a large cruise ship, you need to be proactive in identifying your needs, deal with the same staff as often as possible and give staff some lead time to meet your requests. Remember, if you don't get the assistance you need, ask to speak to the guest relations representative on board as soon as possible so you are not disappointed during your adventure.