-
In my opinion, the best way by far is to get a free bank account (such as Charles Schwab) that refunds all ATM fees and then just withdraw cash from an ATM as you need it using your debit card.
Just make sure to reject any offers to charge your account in USD.
Make sure it always does the withdrawal in the local currency, which your bank will then convert to USD at something very near the current interbank rate.
Schwab’s account is free and refunds the fees that the ATM owner charges for the transaction back to your account.
It’s what I’ve been using for years and it works great.
There are several other banks and credit unions that also offer similar checking accounts like Fidelity.
As an added bonus, having a separate checking account like this that you only use for travel also means that only whatever funds you transfer to it before the trip are ever at risk if your debit card is lost or stolen while traveling, not your primary checking account.