diff --git a/ansible/group_vars/all/kolla b/ansible/group_vars/all/kolla
index 620e9f3a76b03fc2aaaba2409fcf3a06331fdc82..542f5866418768f85a852f932edea7430bd2b51b 100644
--- a/ansible/group_vars/all/kolla
+++ b/ansible/group_vars/all/kolla
@@ -348,9 +348,11 @@ kolla_enable_blazar: "no"
 kolla_enable_central_logging: "no"
 kolla_enable_ceph: "no"
 kolla_enable_ceilometer: "no"
-# The chrony container is disabled by default because we enable an NTP daemon
-# on the host. Setting this to true will disable NTP on the host.
-kolla_enable_chrony: "no"
+# The chrony container is disabled by default on CentOS 7 because we enable an
+# NTP daemon on the host. On CentOS 8 the chrony container is enabled by
+# default because the NTP daemon is not supported. Setting this to true will
+# disable NTP on the host.
+kolla_enable_chrony: "{{ ansible_os_family != 'RedHat' or ansible_distribution_major_version | int >= 8 }}"
 kolla_enable_cinder: "no"
 kolla_enable_cloudkitty: "no"
 kolla_enable_collectd: "no"
diff --git a/ansible/group_vars/all/ntp b/ansible/group_vars/all/ntp
index 074106709982746b171d2820490335e8093f6fc8..c7d5a34ddff65dc1d84ffa8170a647bd5a2ac977 100644
--- a/ansible/group_vars/all/ntp
+++ b/ansible/group_vars/all/ntp
@@ -10,9 +10,14 @@ timezone: "{{ ansible_date_time.tz }}"
 ###############################################################################
 # Network Time Protocol (NTP).
 
-# Whether to enable the NTP daemon on the host. Default is true unless
-# 'kolla_enable_chrony' has been set to true on overcloud hosts.
-ntp_service_enabled: "{{ 'overcloud' not in group_names or not kolla_enable_chrony | bool }}"
+# Whether to enable the NTP daemon on the host. On CentOS 7 the default is true
+# unless 'kolla_enable_chrony' has been set to true on overcloud hosts. On
+# CentOS 8 the host NTP daemon is not supported, and kolla_enable_chrony is set
+# to true by default.
+ntp_service_enabled: >-
+  {{ ansible_os_family == 'RedHat' and
+     ansible_distribution_major_version | int == 7 and
+     ('overcloud' not in group_names or not kolla_enable_chrony | bool) }}
 
 ntp_package_state: "{{ 'present' if ntp_service_enabled | bool else 'absent' }}"
 ntp_service_state: "{{ 'started' if ntp_service_enabled | bool else 'stopped' }}"
diff --git a/doc/source/configuration/hosts.rst b/doc/source/configuration/hosts.rst
index d2b45dffd47b22e31c31ec765d84448b9016e203..12f23eb339447e998025761290d614185aef55a6 100644
--- a/doc/source/configuration/hosts.rst
+++ b/doc/source/configuration/hosts.rst
@@ -363,6 +363,11 @@ NTP
 *tags:*
   | ``ntp``
 
+.. note::
+
+   CentOS 8 does not support configuring an NTP daemon. Use :ref:`chrony
+   <configuration-hosts-chrony>` instead.
+
 Network Time Protocol (NTP) may be configured via variables in
 ``${KAYOBE_CONFIG_PATH}/ntp.yml``. The list of NTP servers is
 configured via ``ntp_config_server``, and by default the ``pool.ntp.org``
@@ -391,14 +396,17 @@ The NTP service may be disabled as follows:
 
    ntp_service_enabled: false
 
+.. _configuration-hosts-chrony:
+
 Chrony
 ------
 
 Kolla Ansible can deploy a chrony container. This is disabled by default in
-Kayobe to avoid conflicting with the NTP daemon on the host.
+Kayobe on CentOS 7 to avoid conflicting with the NTP daemon on the host. On
+CentOS 8 Chrony is enabled by default.
 
-To use the containerised chrony daemon and disable the host NTP daemon, set the
-following in ``${KAYOBE_CONFIG_PATH}/kolla.yml``:
+To use the containerised chrony daemon and disable the host NTP daemon on
+CentOS 7, set the following in ``${KAYOBE_CONFIG_PATH}/kolla.yml``:
 
 .. code-block:: yaml
 
diff --git a/etc/kayobe/kolla.yml b/etc/kayobe/kolla.yml
index 7541deac54a532635fe4017e7cac8b7e98615373..3c45752470512e9e8fed82d126e51ef0f43a7106 100644
--- a/etc/kayobe/kolla.yml
+++ b/etc/kayobe/kolla.yml
@@ -185,8 +185,10 @@
 #kolla_enable_ceph_mds:
 #kolla_enable_ceph_nfs:
 #kolla_enable_ceph_rgw:
-# The chrony container is disabled by default because we enable an NTP daemon
-# on the host. Setting this to true will disable NTP on the host.
+# The chrony container is disabled by default on CentOS 7 because we enable an
+# NTP daemon on the host. On CentOS 8 the chrony container is enabled by
+# default because the NTP daemon is not supported. Setting this to true will
+# disable NTP on the host.
 #kolla_enable_chrony:
 #kolla_enable_cinder:
 #kolla_enable_cinder_backend_hnas_iscsi:
diff --git a/etc/kayobe/ntp.yml b/etc/kayobe/ntp.yml
index 783c3daf5bb1e5682bb8df433f9c89c119092d43..ace7605b63779b5bed7ba60bb692d6e0a43bfea1 100644
--- a/etc/kayobe/ntp.yml
+++ b/etc/kayobe/ntp.yml
@@ -10,8 +10,10 @@
 ###############################################################################
 # Network Time Protocol (NTP).
 
-# Whether to enable the NTP daemon on the host. Default is true unless
-# 'kolla_enable_chrony' has been set to true on overcloud hosts.
+# Whether to enable the NTP daemon on the host. On CentOS 7 the default is true
+# unless 'kolla_enable_chrony' has been set to true on overcloud hosts. On
+# CentOS 8 the host NTP daemon is not supported, and kolla_enable_chrony is set
+# to true by default.
 #ntp_service_enabled:
 
 # List of names of NTP servers.
diff --git a/releasenotes/notes/centos-8-chrony-bec9d7bc8b346363.yaml b/releasenotes/notes/centos-8-chrony-bec9d7bc8b346363.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..0f4411201c50f73e824c0c2962b8f3ecc62902af
--- /dev/null
+++ b/releasenotes/notes/centos-8-chrony-bec9d7bc8b346363.yaml
@@ -0,0 +1,8 @@
+---
+upgrade:
+  - |
+    Support for configuring an NTP daemon on the seed and overcloud hosts is no
+    longer present for CentOS 8, as appropriate packages are not available.
+    Instead, Kolla Ansible is configured to deploy the ``chrony`` container on
+    overcloud hosts by default. This may be disabled by setting
+    ``kolla_enable_chrony`` to ``false``.