I never make any small talk because I feel like I don't have anything to say or ask.
How do you know what to say? How do you make the conversation flow and not end awkwardly?
It doesn't really matter what you have to say or ask - basically the point of small talk is to express to people "I like you!". Just try to find something to like and the conversation comes (not always, but usually)
A few things I do: I'll point something out, and ask a question. So if I'm in a shop I'll saying something like "I've never seen that before - is it popular?"
If I'm getting a coffee if the barista says "How are you?" Rather than just saying something non-committal I'll say "I'm good thanks, it looks like you're having a busy day/quiet day - has it been like this all day?" or I'll ask a question about the beans (if it's the sort of place they regularly rotate through different beans) or I'll ask what the music that's playing is, or something like that. You can immediately tell if someone wants to continue the conversation. And obviously, if it's busy I won't try to engage them in a longer conversation unless they seem to want to.
If I'm waiting for a bus or a train asking someone "Do you know if this one goes to....{destination}?" is an easy start - obviously, even if you know it does, and you want to talk to someone, it's a good start. And then you can say "Thanks, that's really helpful, I'm going to {destination} so that I can {do a thing}. How about you - are you going anywhere nice today?"
The key thing is knowing whether someone is open to a longer conversation. That's something you can only learn by pushing through the awkwardness of people shutting you down and turning away, or making it clear they don't want to talk.
But when they do, it's almost always very enjoyable, even if it's only a few minutes.
It's amazing the difference you'll find if you go to the same shops/places regularly and make the effort to exchange a genuine human interaction with the people you meet - they remember you, and they make an effort to do things to please you. That's not why I do it, it's a positive consequence.
I think the biggest thing is to have the conversations with people with no agenda. You're not trying to achieve something, you're just exchanging a pleasant interaction with someone, and hopefully you both leave feeling a little more connected to the world.
And always ending by saying something like "Well, it was nice talking to you! See you around!/have a lovely day/something".
If you can leave people feeling like you liked the interaction, you'll gradually feel like the interactions are pleasant.
You don't need something big to say.
And having dogs helps a LOT.
You can never go wrong with genuinely asking someone how their day is going. If someone doesn't want to talk it's very easy for them to shutdown the conversation and move on. But, I find most of the time people are dying to talk about how good/bad their day is going.
Think of it this way. Everyone's favorite topic is themselves. Give someone an opportunity to talk about themselves and most people will take it. The nuance that takes practice is not peppering the person with questions. Ask, give them time to respond, and then maybe say something from your own day and ask a follow up to something they said. That way you keep them doing most of the talking, but it's not an interrogation.
As for the awkward part, embrace it! I can be super awkward so I just run towards it. "Ending a random convo is always awkward for me, so I'll just say it was nice to chat and maybe chat again sometime." Usually there's a chuckle and done.