In a TLS 1.3 connection, how do the client and server choose a mutual cipher suite? According to KeyCDN, TLSv1.3 connections are established in a single round trip:


  While TLS 1.2 requires two round-trips to complete the TLS handshake, 1.3 gets the job done in just one trip


If that is the case, then the client's first message (after the TCP handshake) must include everything that the server will need for symmetric encryption, including the key and cipher suite. That means that the client would have to choose a suite without any input from the server.

How can the client be sure to pick a cipher suite that the server supports?
The client doesn't - the server now chooses the ciphersuite. The client now sends the supported client suites and the server gets to choose. Fortunately there aren't that many ciphersuites for TLS 1.3 because the server is likely to have a somewhat shorter list (note that there are only two bytes required per cipher suite though).

Similarly, since there is only DHE and ECDHE for key agreement it is relatively easy to "guess" the key agreement protocol. It's pretty likely that a server supports both - and otherwise it just costs another round trip and key pair generation.

An even better explanation can be found here with clear indications of what gets send at what step in the communication between client / server.  Note that "key share" here is not an encrypted key, it's just the public key of the generated ephemeral key pair.