chore: enforce one sentence per line in Markdown files
This is widely considered best practice, we should enforce it. Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
This commit is contained in:
parent
7970f977b7
commit
8c73c38b8a
@ -301,7 +301,8 @@ RUN --mount=type=cache,target=/.cache/go-build golangci-lint run --config golang
|
|||||||
|
|
||||||
FROM node:8.16.1-alpine AS markdownlint
|
FROM node:8.16.1-alpine AS markdownlint
|
||||||
RUN npm install -g markdownlint-cli
|
RUN npm install -g markdownlint-cli
|
||||||
|
RUN npm i sentences-per-line
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
COPY .markdownlint.json .
|
COPY .markdownlint.json .
|
||||||
COPY docs .
|
COPY docs .
|
||||||
RUN markdownlint .
|
RUN markdownlint --rules /node_modules/sentences-per-line/index.js .
|
||||||
|
@ -9,9 +9,14 @@ menu:
|
|||||||
weight: 20
|
weight: 20
|
||||||
---
|
---
|
||||||
|
|
||||||
A common theme throughout the design of Talos is minimalism. We believe strongly in the UNIX philosophy that each program should do one job well. The `init` included in Talos is one example of this.
|
A common theme throughout the design of Talos is minimalism.
|
||||||
|
We believe strongly in the UNIX philosophy that each program should do one job well.
|
||||||
|
The `init` included in Talos is one example of this.
|
||||||
|
|
||||||
We wanted to create a focused `init` that had one job - run Kubernetes. To that extent, `init` is relatively static in that it does not allow for arbitrary user defined services. Only the services necessary to run Kubernetes and manage the node are available. This includes:
|
We wanted to create a focused `init` that had one job - run Kubernetes.
|
||||||
|
To that extent, `init` is relatively static in that it does not allow for arbitrary user defined services.
|
||||||
|
Only the services necessary to run Kubernetes and manage the node are available.
|
||||||
|
This includes:
|
||||||
|
|
||||||
- [containerd](/docs/components/containerd)
|
- [containerd](/docs/components/containerd)
|
||||||
- [kubeadm](/docs/components/kubeadm)
|
- [kubeadm](/docs/components/kubeadm)
|
||||||
|
@ -7,6 +7,8 @@ menu:
|
|||||||
parent: 'components'
|
parent: 'components'
|
||||||
---
|
---
|
||||||
|
|
||||||
[`kubeadm`](https://github.com/kubernetes/kubernetes/tree/master/cmd/kubeadm) handles the installation and configuration of Kubernetes. This is done to stay as close as possible to upstream Kubernetes best practices and recommendations. By integrating with `kubeadm` natively, the development and operational ecosystem is familiar to all Kubernetes users.
|
[`kubeadm`](https://github.com/kubernetes/kubernetes/tree/master/cmd/kubeadm) handles the installation and configuration of Kubernetes.
|
||||||
|
This is done to stay as close as possible to upstream Kubernetes best practices and recommendations.
|
||||||
|
By integrating with `kubeadm` natively, the development and operational ecosystem is familiar to all Kubernetes users.
|
||||||
|
|
||||||
Kubeadm configuration is defined in the userdata under the `services.kubeadm` section.
|
Kubeadm configuration is defined in the userdata under the `services.kubeadm` section.
|
||||||
|
@ -5,4 +5,5 @@ menu:
|
|||||||
parent: components
|
parent: components
|
||||||
---
|
---
|
||||||
|
|
||||||
Networkd handles all of the host level network configuration. Configuration is defined under the `networking` key.
|
Networkd handles all of the host level network configuration.
|
||||||
|
Configuration is defined under the `networking` key.
|
||||||
|
@ -7,7 +7,9 @@ menu:
|
|||||||
parent: 'components'
|
parent: 'components'
|
||||||
---
|
---
|
||||||
|
|
||||||
`osctl` CLI is the client to the [osd](/components/osd) service running on every node. `osctl` should provide enough functionality to be a replacement for typical interactive shell operations. With it you can do things like:
|
`osctl` CLI is the client to the [osd](/components/osd) service running on every node.
|
||||||
|
`osctl` should provide enough functionality to be a replacement for typical interactive shell operations.
|
||||||
|
With it you can do things like:
|
||||||
|
|
||||||
- `osctl logs <service>` - retrieve container logs
|
- `osctl logs <service>` - retrieve container logs
|
||||||
- `osctl restart <service>` - restart a service
|
- `osctl restart <service>` - restart a service
|
||||||
|
@ -10,12 +10,14 @@ menu:
|
|||||||
weight: 10
|
weight: 10
|
||||||
---
|
---
|
||||||
|
|
||||||
The `osd` service enforces a high level of security by using mutual TLS for authentication and authorization. In this section we will configure mutual TLS by generating the certificates for the servers (`osd`) and clients (`osctl`).
|
The `osd` service enforces a high level of security by using mutual TLS for authentication and authorization.
|
||||||
|
In this section we will configure mutual TLS by generating the certificates for the servers (`osd`) and clients (`osctl`).
|
||||||
|
|
||||||
### Cluster Owners
|
### Cluster Owners
|
||||||
|
|
||||||
We recommend that the configuration of `osd` be performed by a cluster owner.
|
We recommend that the configuration of `osd` be performed by a cluster owner.
|
||||||
A cluster owner should be a person of authority within an organization, perhaps a director, manager, or senior member of a team. They are responsible for storing the root CA, and distributing the PKI for authorized cluster administrators.
|
A cluster owner should be a person of authority within an organization, perhaps a director, manager, or senior member of a team.
|
||||||
|
They are responsible for storing the root CA, and distributing the PKI for authorized cluster administrators.
|
||||||
|
|
||||||
### Cluster Administrators
|
### Cluster Administrators
|
||||||
|
|
||||||
|
@ -13,7 +13,8 @@ Talos User Data is responsible for the host and Kubernetes configuration, and it
|
|||||||
|
|
||||||
## Version
|
## Version
|
||||||
|
|
||||||
``Version`` represents the Talos userdata configuration version. This denotes
|
``Version`` represents the Talos userdata configuration version.
|
||||||
|
This denotes
|
||||||
what the schema of the configuration file.
|
what the schema of the configuration file.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
@ -60,7 +61,8 @@ security:
|
|||||||
#### SA
|
#### SA
|
||||||
|
|
||||||
``Kubernetes.SA`` contains the certificate/key pair for the default service account.
|
``Kubernetes.SA`` contains the certificate/key pair for the default service account.
|
||||||
This item is optional. If it is not provided, a certificate/key pair will be generated.
|
This item is optional.
|
||||||
|
If it is not provided, a certificate/key pair will be generated.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
security:
|
security:
|
||||||
@ -73,7 +75,8 @@ security:
|
|||||||
#### FrontProxy
|
#### FrontProxy
|
||||||
|
|
||||||
``Kubernetes.FrontProxy`` contains the certificate/key pair for the [Front Proxy](https://kubernetes.io/docs/tasks/access-kubernetes-api/setup-extension-api-server/).
|
``Kubernetes.FrontProxy`` contains the certificate/key pair for the [Front Proxy](https://kubernetes.io/docs/tasks/access-kubernetes-api/setup-extension-api-server/).
|
||||||
This item is optional. If it is not provided, a certificate/key pair will be generated.
|
This item is optional.
|
||||||
|
If it is not provided, a certificate/key pair will be generated.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
security:
|
security:
|
||||||
@ -86,7 +89,8 @@ security:
|
|||||||
#### Etcd
|
#### Etcd
|
||||||
|
|
||||||
``Kubernetes.Etcd`` contains the certificate/key pair for [etcd](https://kubernetes.io/docs/concepts/overview/components/#etcd).
|
``Kubernetes.Etcd`` contains the certificate/key pair for [etcd](https://kubernetes.io/docs/concepts/overview/components/#etcd).
|
||||||
This item is optional. If it is not provided, a certificate/key pair will be generated.
|
This item is optional.
|
||||||
|
If it is not provided, a certificate/key pair will be generated.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
security:
|
security:
|
||||||
@ -146,13 +150,15 @@ The following DHCP options are supported:
|
|||||||
|
|
||||||
##### Routes
|
##### Routes
|
||||||
|
|
||||||
``Routes`` is used to specify static routes that may be necessary. This parameter is optional.
|
``Routes`` is used to specify static routes that may be necessary.
|
||||||
|
This parameter is optional.
|
||||||
|
|
||||||
## Services
|
## Services
|
||||||
|
|
||||||
### Init
|
### Init
|
||||||
|
|
||||||
``Init`` allows for the customization of the CNI plugin. This translates to additional host mounts.
|
``Init`` allows for the customization of the CNI plugin.
|
||||||
|
This translates to additional host mounts.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
services:
|
services:
|
||||||
@ -166,8 +172,7 @@ services:
|
|||||||
|
|
||||||
#### ExtraMounts
|
#### ExtraMounts
|
||||||
|
|
||||||
``Kubelet.ExtraMounts`` allows you to specify additional host mounts that should be presented
|
``Kubelet.ExtraMounts`` allows you to specify additional host mounts that should be presented to kubelet.
|
||||||
to kubelet.
|
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
services:
|
services:
|
||||||
@ -232,9 +237,8 @@ services:
|
|||||||
#### InitToken
|
#### InitToken
|
||||||
|
|
||||||
kubeadm.Inittoken denotes that this node should bootstrap the Kubernetes cluster.
|
kubeadm.Inittoken denotes that this node should bootstrap the Kubernetes cluster.
|
||||||
The token is a UUIDv1 token which means it includes a timestamp of when it was
|
The token is a UUIDv1 token which means it includes a timestamp of when it was generated.
|
||||||
generated. There is a 1 hour TTL associated with this token where it will perform
|
There is a 1 hour TTL associated with this token where it will perform a `kubeadm init` to bootstrap the cluster.
|
||||||
a `kubeadm init` to bootstrap the cluster.
|
|
||||||
This token is a UUIDv1 token and can be generated via `osctl gen token`.
|
This token is a UUIDv1 token and can be generated via `osctl gen token`.
|
||||||
|
|
||||||
This token should only be specified on a single master node.
|
This token should only be specified on a single master node.
|
||||||
@ -287,8 +291,9 @@ services:
|
|||||||
|
|
||||||
#### Endpoints
|
#### Endpoints
|
||||||
|
|
||||||
The endpoints denote the other trustd instances. All trustd instances should
|
The endpoints denote the other trustd instances.
|
||||||
be listed here. These are typically your master nodes.
|
All trustd instances should be listed here.
|
||||||
|
These are typically your master nodes.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
services:
|
services:
|
||||||
@ -310,8 +315,8 @@ services:
|
|||||||
|
|
||||||
#### Server
|
#### Server
|
||||||
|
|
||||||
NTP.Server allows you to customize which NTP server to use. By default it consumes
|
NTP.Server allows you to customize which NTP server to use.
|
||||||
from pool.ntp.org.
|
By default it consumes from pool.ntp.org.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
services:
|
services:
|
||||||
@ -321,16 +326,16 @@ services:
|
|||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
Install is primarily used in bare metal situations. It defines the disk layout and
|
Install is primarily used in bare metal situations.
|
||||||
installation properties.
|
It defines the disk layout and installation properties.
|
||||||
|
|
||||||
### Boot
|
### Boot
|
||||||
|
|
||||||
#### Device
|
#### Device
|
||||||
|
|
||||||
The device name to use for the `/boot` partition. This should be specified as
|
The device name to use for the `/boot` partition.
|
||||||
the unpartitioned block device. If this parameter is omitted, the value of
|
This should be specified as the unpartitioned block device.
|
||||||
`install.root.device` is used.
|
If this parameter is omitted, the value of `install.root.device` is used.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
install:
|
install:
|
||||||
@ -340,8 +345,8 @@ install:
|
|||||||
|
|
||||||
#### Size
|
#### Size
|
||||||
|
|
||||||
The size of the `/boot` partition in bytes. If this parameter is omitted, a
|
The size of the `/boot` partition in bytes.
|
||||||
default value of 512MB will be used.
|
If this parameter is omitted, a default value of 512MB will be used.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
install:
|
install:
|
||||||
@ -351,8 +356,8 @@ install:
|
|||||||
|
|
||||||
#### Kernel
|
#### Kernel
|
||||||
|
|
||||||
This parameter can be used to specify a custom kernel to use. If this parameter
|
This parameter can be used to specify a custom kernel to use.
|
||||||
is omitted, the most recent Talos release will be used ( fetched from github releases ).
|
If this parameter is omitted, the most recent Talos release will be used ( fetched from github releases ).
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
install:
|
install:
|
||||||
@ -364,8 +369,8 @@ install:
|
|||||||
|
|
||||||
#### Initramfs
|
#### Initramfs
|
||||||
|
|
||||||
This parameter can be used to specify a custom initramfs to use. If this parameter
|
This parameter can be used to specify a custom initramfs to use.
|
||||||
is omitted, the most recent Talos release will be used ( fetched from github releases ).
|
If this parameter is omitted, the most recent Talos release will be used ( fetched from github releases ).
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
install:
|
install:
|
||||||
@ -380,8 +385,9 @@ install:
|
|||||||
<!-- markdownlint-disable MD024 -->
|
<!-- markdownlint-disable MD024 -->
|
||||||
#### Device
|
#### Device
|
||||||
|
|
||||||
``Device`` specifies the device name to use for the `/var` partition. This should be specified as the
|
``Device`` specifies the device name to use for the `/var` partition.
|
||||||
unpartitioned block device. If this parameter is omitted, the value of `install.root.device` is used.
|
This should be specified as the unpartitioned block device.
|
||||||
|
If this parameter is omitted, the value of `install.root.device` is used.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
install:
|
install:
|
||||||
@ -392,8 +398,9 @@ install:
|
|||||||
<!-- markdownlint-disable MD024 -->
|
<!-- markdownlint-disable MD024 -->
|
||||||
#### Size
|
#### Size
|
||||||
|
|
||||||
``Size`` defines the size of the `/var` partition in bytes. If this parameter is omitted, a default
|
``Size`` defines the size of the `/var` partition in bytes.
|
||||||
value of 1GB will be used. This partition will auto extend to consume the remainder of the unpartitioned space on the disk.
|
If this parameter is omitted, a default value of 1GB will be used.
|
||||||
|
This partition will auto extend to consume the remainder of the unpartitioned space on the disk.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
install:
|
install:
|
||||||
@ -421,8 +428,8 @@ install:
|
|||||||
|
|
||||||
### ExtraDevices
|
### ExtraDevices
|
||||||
|
|
||||||
``ExtraDevices`` allows for the extension of the partitioning scheme on the specified
|
``ExtraDevices`` allows for the extension of the partitioning scheme on the specified device.
|
||||||
device. These new partitions will be formatted as `xfs` filesystems.
|
These new partitions will be formatted as `xfs` filesystems.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
install:
|
install:
|
||||||
|
@ -10,7 +10,8 @@ menu:
|
|||||||
---
|
---
|
||||||
|
|
||||||
Configuring the worker nodes is simple in comparison to configuring the master nodes.
|
Configuring the worker nodes is simple in comparison to configuring the master nodes.
|
||||||
Using the `trustd` API, worker nodes submit a `CSR`, and, if authenticated, receive a valid `osd` certificate. Similarly, using a `kubeadm` token, the node joins an existing cluster.
|
Using the `trustd` API, worker nodes submit a `CSR`, and, if authenticated, receive a valid `osd` certificate.
|
||||||
|
Similarly, using a `kubeadm` token, the node joins an existing cluster.
|
||||||
|
|
||||||
We need to specify:
|
We need to specify:
|
||||||
|
|
||||||
|
@ -9,9 +9,8 @@ menu:
|
|||||||
|
|
||||||
## Image Creation
|
## Image Creation
|
||||||
|
|
||||||
For each [Talos release](https://github.com/talos-systems/talos/releases),
|
For each [Talos release](https://github.com/talos-systems/talos/releases), we provide an Azure compatible vhd (`azure.tar.gz`).
|
||||||
we provide an Azure compatible vhd (`azure.tar.gz`). If you want to build
|
If you want to build the image locally, you can do so by running:
|
||||||
the image locally, you can do so by running:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make installer
|
make installer
|
||||||
@ -22,9 +21,8 @@ This will produce `build/azure.tar.gz`.
|
|||||||
|
|
||||||
## Environment Setup
|
## Environment Setup
|
||||||
|
|
||||||
Before proceeding, you'll want to make sure you have `osctl` available and the
|
Before proceeding, you'll want to make sure you have `osctl` available and the azure cli `az` installed and configured.
|
||||||
azure cli `az` installed and configured. `osctl` is published on each release
|
`osctl` is published on each release and is available on our releases page [Talos release](https://github.com/talos-systems/talos/releases).
|
||||||
and is available on our releases page [Talos release](https://github.com/talos-systems/talos/releases).
|
|
||||||
If you want to build it locally, you can do so by running:
|
If you want to build it locally, you can do so by running:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@ -47,8 +45,7 @@ LOCATION=${LOCATION:-westus2}
|
|||||||
|
|
||||||
## Upload Image
|
## Upload Image
|
||||||
|
|
||||||
After downloading or creating the image locally, we'll want to upload it to
|
After downloading or creating the image locally, we'll want to upload it to Azure and create an image.
|
||||||
Azure and create an image.
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Create resource group
|
# Create resource group
|
||||||
@ -97,8 +94,8 @@ az network nsg rule create -g $GROUP --nsg-name talos -n kube --priority 1004 --
|
|||||||
|
|
||||||
## Cluster Configuration
|
## Cluster Configuration
|
||||||
|
|
||||||
After getting the network security group set up, we'll need to allocate public
|
After getting the network security group set up, we'll need to allocate public IPs for our master nodes.
|
||||||
IPs for our master nodes. The example below assumes a HA control plane of 3 nodes.
|
The example below assumes a HA control plane of 3 nodes.
|
||||||
You can adjust this for your needs.
|
You can adjust this for your needs.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@ -153,5 +150,5 @@ osctl --talosconfig ./talosconfig kubeconfig > kubeconfig
|
|||||||
kubectl --kubeconfig ./kubeconfig get nodes
|
kubectl --kubeconfig ./kubeconfig get nodes
|
||||||
```
|
```
|
||||||
|
|
||||||
You will need to apply a PSP and CNI configuration. More details can be found
|
You will need to apply a PSP and CNI configuration.
|
||||||
in the [getting started](/docs/guides/getting_started) guide.
|
More details can be found in the [getting started](/docs/guides/getting_started) guide.
|
||||||
|
@ -11,15 +11,18 @@ menu:
|
|||||||
|
|
||||||
When considering Talos for production, the best way to get started is by using the `osctl config generate` command.
|
When considering Talos for production, the best way to get started is by using the `osctl config generate` command.
|
||||||
|
|
||||||
Talos requires 3 static IPs, one for each of the master nodes. After allocating these addresses, you can generate the necessary configs with the following commands:
|
Talos requires 3 static IPs, one for each of the master nodes.
|
||||||
|
After allocating these addresses, you can generate the necessary configs with the following commands:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
osctl config generate <cluster name> <master-1 ip,master-2 ip, master-3 ip>
|
osctl config generate <cluster name> <master-1 ip,master-2 ip, master-3 ip>
|
||||||
```
|
```
|
||||||
|
|
||||||
This will generate 5 files - `master-{1,2,3}.yaml`, `worker.yaml`, and `talosconfig`. The master and worker config files contain just enough config to bootstrap your cluster, and can be further customized as necessary.
|
This will generate 5 files - `master-{1,2,3}.yaml`, `worker.yaml`, and `talosconfig`.
|
||||||
|
The master and worker config files contain just enough config to bootstrap your cluster, and can be further customized as necessary.
|
||||||
|
|
||||||
These config files should be supplied as machine userdata or some internally accessible url so they can be downloaded during machine bootup. When specifying a remote location to download userdata from, the kernel parameter `talos.userdata=http://myurl.com`.
|
These config files should be supplied as machine userdata or some internally accessible url so they can be downloaded during machine bootup.
|
||||||
|
When specifying a remote location to download userdata from, the kernel parameter `talos.userdata=http://myurl.com`.
|
||||||
|
|
||||||
An iPXE server such as [coreos/Matchbox](https://github.com/poseidon/matchbox) is recommended.
|
An iPXE server such as [coreos/Matchbox](https://github.com/poseidon/matchbox) is recommended.
|
||||||
|
|
||||||
@ -40,14 +43,20 @@ Talos also enforces some minimum requirements from the KSPP (kernel self-protect
|
|||||||
|
|
||||||
After the machines have booted up, you'll want to manage your Talos config file.
|
After the machines have booted up, you'll want to manage your Talos config file.
|
||||||
|
|
||||||
The `osctl` tool looks for its configuration in `~/.talos/config` by default. The configuration file location can also be specified at runtime via `osctl --talosconfig myconfigfile`. In the previous step, the Talos configuration was generated in your working directory as `talosconfig`.
|
The `osctl` tool looks for its configuration in `~/.talos/config` by default.
|
||||||
|
The configuration file location can also be specified at runtime via `osctl --talosconfig myconfigfile`.
|
||||||
|
In the previous step, the Talos configuration was generated in your working directory as `talosconfig`.
|
||||||
|
|
||||||
By default, the Talos configuration points to a single node. This can be overridden at runtime via `--target <ip>` flag so you can point to another node in your cluster.
|
By default, the Talos configuration points to a single node.
|
||||||
|
This can be overridden at runtime via `--target <ip>` flag so you can point to another node in your cluster.
|
||||||
|
|
||||||
Next, we'll need to generate the kubeconfig for our cluster. This can be achieved by runng `osctl kubeconfig`.
|
Next, we'll need to generate the kubeconfig for our cluster.
|
||||||
|
This can be achieved by runng `osctl kubeconfig`.
|
||||||
|
|
||||||
## Finalizing Kubernetes Setup
|
## Finalizing Kubernetes Setup
|
||||||
|
|
||||||
Once your machines boot up, you will want to apply a Pod Security Policy (PSP). There is a basic example that can be found [here](https://raw.githubusercontent.com/talos-systems/talos/master/hack/dev/manifests/psp.yaml) or you can create your own.
|
Once your machines boot up, you will want to apply a Pod Security Policy (PSP).
|
||||||
|
There is a basic example that can be found [here](https://raw.githubusercontent.com/talos-systems/talos/master/hack/dev/manifests/psp.yaml) or you can create your own.
|
||||||
|
|
||||||
Finally, you'll want to apply a CNI plugin. You'll want to take note of the kubeadm `networking.podsubnet` parameter and ensure the network range matches up.
|
Finally, you'll want to apply a CNI plugin.
|
||||||
|
You'll want to take note of the kubeadm `networking.podsubnet` parameter and ensure the network range matches up.
|
||||||
|
@ -8,7 +8,9 @@ menu:
|
|||||||
weight: 1
|
weight: 1
|
||||||
---
|
---
|
||||||
|
|
||||||
**Talos** is a modern OS designed to be secure, immutable, and minimal. All system management is done via an API, and there is no shell or interactive console. Some of the capabilities and benefits provided by Talos include:
|
**Talos** is a modern OS designed to be secure, immutable, and minimal.
|
||||||
|
All system management is done via an API, and there is no shell or interactive console.
|
||||||
|
Some of the capabilities and benefits provided by Talos include:
|
||||||
|
|
||||||
- **Security**: Talos reduces your attack surface by practicing the Principle of Least Privilege (PoLP) and by securing the API with mutual TLS (mTLS) authentication.
|
- **Security**: Talos reduces your attack surface by practicing the Principle of Least Privilege (PoLP) and by securing the API with mutual TLS (mTLS) authentication.
|
||||||
- **Predictability**: Talos eliminates unneeded variables and reduces unknown factors in your environment by employing immutable infrastructure ideology.
|
- **Predictability**: Talos eliminates unneeded variables and reduces unknown factors in your environment by employing immutable infrastructure ideology.
|
||||||
|
@ -8,13 +8,8 @@ menu:
|
|||||||
|
|
||||||
## Edge Computing
|
## Edge Computing
|
||||||
|
|
||||||
Edge computing, where the data and compute power is distributed to different
|
Edge computing, where the data and compute power is distributed to different physical locations where it is needed, comes with many unique management challenges.
|
||||||
physical locations where it is needed, comes with many unique management
|
Applying system updates to traditional operating systems can be slow and use a lot of bandwidth, and losing remote access to an edge node because of a failed update can be catastrophic.
|
||||||
challenges. Applying system updates to traditional operating systems can be
|
|
||||||
slow and use a lot of bandwidth, and losing remote access to an edge node
|
|
||||||
because of a failed update can be catastrophic.
|
|
||||||
|
|
||||||
Talos makes computing at the edge safer and faster. The minimal operating
|
Talos makes computing at the edge safer and faster.
|
||||||
system requires less bandwidth to deploy and update, and the immutable Talos OS
|
The minimal operating system requires less bandwidth to deploy and update, and the immutable Talos OS image ("no moving parts") makes updates easier to test, and more reliable upon deployment.
|
||||||
image ("no moving parts") makes updates easier to test, and more reliable upon
|
|
||||||
deployment.
|
|
||||||
|
@ -8,13 +8,8 @@ menu:
|
|||||||
|
|
||||||
## Multi-cloud Kubernetes
|
## Multi-cloud Kubernetes
|
||||||
|
|
||||||
Running a large-scale Kubernetes cluster across multiple cloud providers or
|
Running a large-scale Kubernetes cluster across multiple cloud providers or forms of infrastructure can solve some important problems for your business, but it can also create new ones.
|
||||||
forms of infrastructure can solve some important problems for your business,
|
Different base OSes, different versions of critical components, and different upgrade cycles can contribute to instability and hard-to-troubleshoot problems.
|
||||||
but it can also create new ones. Different base OSes, different versions of
|
|
||||||
critical components, and different upgrade cycles can contribute to instability
|
|
||||||
and hard-to-troubleshoot problems.
|
|
||||||
|
|
||||||
Talos has been built from the ground up with multi-cloud operations teams in
|
Talos has been built from the ground up with multi-cloud operations teams in mind, giving you a single platform that is compatible with multiple cloud providers.
|
||||||
mind, giving you a single platform that is compatible with multiple cloud
|
In the future, you will be able to manage all of your Talos-based environments from a single control plane.
|
||||||
providers. In the future, you will be able to manage all of your Talos-based
|
|
||||||
environments from a single control plane.
|
|
||||||
|
@ -8,13 +8,8 @@ menu:
|
|||||||
|
|
||||||
## Serverless Infrastructure
|
## Serverless Infrastructure
|
||||||
|
|
||||||
In a "serverless" environment where units of code are decomposed
|
In a "serverless" environment where units of code are decomposed down to the function level, demand may scale up and down rapidly as different applications make different demands on the underlying infrastructure.
|
||||||
down to the function level, demand may scale up and down rapidly as different
|
Managing the underlying infrastructure in an efficient and automated way is critical to realize the benefits of running a serverless platform.
|
||||||
applications make different demands on the underlying infrastructure. Managing
|
|
||||||
the underlying infrastructure in an efficient and automated way is critical
|
|
||||||
to realize the benefits of running a serverless platform.
|
|
||||||
|
|
||||||
Due to its minimal footprint and design, Talos hosts can be scaled up and down
|
Due to its minimal footprint and design, Talos hosts can be scaled up and down much faster than traditional OSes, which means your infrastructure can be more responsive to changes in demand.
|
||||||
much faster than traditional OSes, which means your infrastructure can be more
|
Cluster management can be automated to make the most efficient use of limited resources.
|
||||||
responsive to changes in demand. Cluster management can be automated to make the
|
|
||||||
most efficient use of limited resources.
|
|
||||||
|
@ -28,5 +28,5 @@ Author(s): [Author Name, Co-Author Name]
|
|||||||
|
|
||||||
## Open issues (if applicable)
|
## Open issues (if applicable)
|
||||||
|
|
||||||
[A discussion of issues relating to this proposal for which the author does not
|
[A discussion of issues relating to this proposal for which the author does not know the solution.]
|
||||||
know the solution. This section may be omitted if there are none.]
|
[This section may be omitted if there are none.]
|
||||||
|
Loading…
Reference in New Issue
Block a user