Why does the deployment of smart contracts on the private Ethereum chain need to consume gasoline, while the invocation does not?
When you're deploying a contract, you're sending a transaction, effectively storing the contract bytecode in the network. All transactions cost gas fees as a reward for the miner/validator who executes it and publishes it to the network.
When you're invoking a contract function, you can do it two ways: