The word comes from Latin, so somewhere the pronunciation has changed separately from the spelling. --- Colonel comes from Old Italian colonello, commander of a column of troops, which in turn derives from colonna, column. Originally, English followed the Spanish practice and spelled the word "coronel," pronounced the way it looks. Eventually this was corrupted to ker-nel. Then a decision was made that coronel ought to be spelled "colonel" to better reflect its Italian origin, but the "kernel" pronunciation remained.