Army upkeep is the cost of the whole army across all cities, and each city pays a proportion of that cost depending on it's population. So you may have very few troops in the city but if you have a big army, they're paying for that too.
The city's income can be increased by trade, taxes and mining. The happier the populace are, the more you can tax them. The better the roads and the bigger the markets along with economic or economic/military region and trade goods will increase trade, and obviously improved mines will increase that if you have mining.
There are also temples that increase trade, mining etc that differ for each faction.
There are no simple fixes.