The first of three German evacuation planes diverted to the Uzbek capital, Tashkent, because it could not land in Kabul, which lies in a valley surrounded by mountains. A second plane was circling over the city.
Crowds converged on the airport seeking to escape, including some clinging to a US military transport plane as it taxied on the runway, according to footage posted by private Afghan broadcaster Tolo news.
US troops fired in the air to deter people trying to force their way on to a military flight evacuating US diplomats and embassy staff, a US official said.