Why is colonel pronounced kernel?
What a wonderful question. I was so intrigued that I had to do some research on the word myself.
The word colonel was adapted by the French from the Italians. The original Italian spelling of the word was colonello. This word, when adopted by the French, was changed in spelling based upon the fact that the French "did not like so many ls in a word." The new French spelling of the word was coronnel (through the process of dissimilation: "a linguistic process by which one of two similar sounds in a word becomes less like the other").
It was in the middle of the 16th century when the English adopted the word. Upon its introduction into the English language, the spelling of the word was changed again: to colonel. Even with the change in spelling, the English kept the pronunciation used by the French: /kɜrnəl/.