How do I theme a link? In Drupal 7 this was possible.

$link = array(
  '#type'  =&gt; 'link',
  '#title' =&gt; t('My Title'),
  '#href'  =&gt; 'node/1',
);
drupal_render($link);


But I've tried this with Drupal 8, and it does not output anything.

$link = array(
  '#type' =&gt; 'link',
  '#title' =&gt; t('test'),
  '#url' =&gt; 'node/1',
);
drupal_render($link);


Is there a way I can render a link without having to call the Link plugin directly, or create my own theme function?

I'm theming a field group formatter, which must output a render array.
The use of drupal_render() is deprecated and should not be called directly; I'm using it here to make my example clearer.
I think the problem with your Drupal 8 code is that '#url' needs a URL object.

External URL

'#url' =&gt; Url::fromUri('https://www.drupal.org'),


Internal URL from a route

'#url' =&gt; Url::fromRoute('entity.node.canonical', ['node' =&gt; 1]),


In Drupal 8 you are not supposed to render yourself. When porting code from Drupal 7, remove all rendering and return only render arrays.