The prime ministers of Italy and Canada have signed security deals with Ukraine after talks with President Volodymyr Zelenskiy as Kyiv marked the second anniversary of Russia's full-scale invasion.
After initial successes in pushing back the Russian army, Ukraine has suffered recent setbacks on the eastern battlefields, with its generals complaining of growing shortages of both arms and soldiers.
Looking to dispel concerns the international community is losing interest in the conflict, Italy's Giorgia Meloni and Canada's Justin Trudeau came to Kyiv early on Saturday with European Commission President Ursula von der Leyen and Belgian Prime Minister Alexander De Croo.
"The message I want to send today to ... all the Ukrainian people is that they are not alone. I want you to know that we are deeply grateful," Meloni said as she signed a 10-year defence pact with Zelenskiy.
Trudeau signed a similar accord and pledged $US2.25 billion ($A3.43 billion) in financial and military support this year.
"We will stand with Ukraine with whatever it takes, for as long as it takes," Trudeau said.
Zelenskiy told reporters at the news conference that Saturday had been "a unique day for our country".
The two security agreements were signed at the start of a joint news conference with Zelenskiy, Meloni, Trudeau and the leaders of Belgium and the European Union.
Ordinary Ukrainians held services to commemorate the anniversary, laying flowers to honour their many dead, amid fears that the war would continue for years, with Russian President Vladimir Putin showing no sign of backing down.
"I'm a realist and understand that most likely the war will drag on for the next three or four years. I hope society will mobilise, I hope we'll be able to somehow defeat Russia," Denys Symonovskiy, a Kyiv resident, said.
Zelenskiy took the foreign leaders to see Hostomel airport - the site of a ferocious battle at the start of the invasion as Russia tried to fly in paratroopers to seize the capital Kyiv a few kilometres away.
"Two years ago we met enemy troopers here with fire, and two years later, we are meeting our friends, our partners, here," Zelenskiy said in a televised speech delivered against a backdrop of wrecked aircraft.
"Any normal person wants the war to end. But none of us will allow our Ukraine to end," he added.
"The word 'independent' will always stand next to the word 'Ukraine' in future history."
Outside Kyiv, the war continued unabated.
Russian drones attacked the port of Odesa for a second night running, hitting a residential building, killing one person, the regional governor said.
In Dnipro, a Russian drone hit an apartment building and a rescue operation uncovered two dead.
Meanwhile, a source in Kyiv said Ukrainian drones had caused a blaze at a Russian steel plant, which a Russian official identified as one in Lipetsk, 400km from Ukraine, that is responsible for about 18 per cent of Russian output.
US President Joe Biden was due to take part in a video conference of fellow leaders of the G7 on Saturday, with Zelenskiy invited to join in.
Ukraine's allies see the invasion as an unjustified act of aggression that must be repelled and Italy, current chair of the G7, said it was vital to challenge perceptions that it was wearying of the conflict and Russia was winning.
When Russian tanks and infantry streamed across the border before dawn on February 24, 2022, Ukraine's 40 million people defied expectations by slowing and stopping their advance.
But as the war enters its third year, setbacks in the east have left Ukraine's army looking vulnerable.
Anniversary events were planned across Ukraine, including in the western city of Lviv, hundreds of kilometres from the fighting, where grieving women cried as a priest led a prayer at a service in a cemetery festooned with blue and yellow Ukrainian flags, each marking the death of a soldier.
The initial shock of the invasion has gradually faded into familiarity and then fatigue, as the world watched initial Russian gains and a stunning Ukrainian counteroffensive in late 2022 slow into grinding trench warfare.