You will need an eTA if you're flying into Canada.
Government of Canada website
Fly to or transit through a Canadian airport:
You need to apply online for an Electronic Travel Authorization (eTA).
You can apply with a valid passport, a credit or a debit card, and an
email address.
Drive or arrive by train, bus, or boat:
You don’t need a visa or eTA, but you do need to bring the right
travel documents.
Apply for an eTA here, it costs $7CAD.
Your current ESTA will be fine for entering the USA by air or cruise ship on the Visa Waiver Program. You do not need an ESTA to cross into the USA at a land border but I have heard having one makes the process quicker.
VWP citizens do not need an ESTA to travel on the ferries between Vancouver and Victoria, BC and Washington state. They are treated as a land border port.
Please also note: On this trip your time in Canada will class as time on your 90 days allowance under the visa waiver program so make sure your total trip is not more than 90 days.