Your whole life, you've probably been wondering why the word colonel sounds like kernel, but have been too afraid to question it. That's basically the story of how we got the word. We used to have a term, coronel, which was pronounced as you might think. This was slurred to omit the second o later, but that happens to words all the time. The clincher here is that the word's spelling spelling naturally evolved, but people didn't change the pronunciation in fear that it would be wrong. And now it is. However, earlier on, this came from the Middle French word coronnel, which quite ironically traces to the Old Italian word colonello, giving us a loop back to the l spelling which is quite unnecessary. Colonello is from Latin columna, which meant "pillar", under the correlation that a military commander organizes his soldiers into a column, and another word for column is "pillar". Through Proto-Italic kolamen, this goes to the Proto-Indo-European root kelh, which meant "to rise" (since pillars rise). Side note: the French have since modified coronnel to colonel as well, but the French were wise enough to change the pronunciation too, so they have an l in it and we don't. In Spanish, coronel is pronounced as you may think and is a remnant from the Middle French variation.
Adam Aleksic has been described as the internet's sixth most famous etymologist. He loves writing about himself in the third person, he's a freshman at Harvard University, and he has disturbing interests in linguistics, vexillology, geography, board games, limericks, and law.
The Etymology Nerd