Available in VPC
The following add-ons are provided by Ncloud Kubernetes Service (NKS).
| Add-on | Name | Category | Description |
|---|---|---|---|
nks-csi |
NKS Block Storage CSI | storage | CSI driver for using block storage as a PersistentVolume |
nks-nas-csi |
NKS NAS (NFS) CSI | storage | CSI driver for using NAS (NFS) volume as PersistentVolume |
external-dns |
ExternalDNS | network | Controller that automatically registers and manages DNS names for Services and Ingresses in external DNS |
nks-gateway-adapter |
NKS Gateway API Adapter | network | Adapter that connects Gateway API resources (Gateway, HTTPRoute) to NAVER Cloud ALB |
When installing or editing an add-on, you can enter the settings provided by each add-on. This document describes all settings available for each add-on, including their meanings and examples. Available settings and allowed ranges may vary by add-on version. When installing or editing an add-on, select a version and specify the settings based on the displayed configuration schema.
NKS Block Storage CSI
This CSI driver uses block storage as a Kubernetes PersistentVolume. Installing this add-on allows you to dynamically provision block storage-based volumes and mount them to pods.
After installation, see the Block storage CSI examples for usage instructions.
Settings
The available settings are as follows.
| Item | Description | Type | Default |
|---|---|---|---|
| scheduling.nodeSelector | Node label conditions for deploying components. | Object (string map) | (None) |
| scheduling.extraTolerations |
|
Array | (None) |
| scheduling.extraTolerations[].key | Target taint key. | String | (None) |
| scheduling.extraTolerations[].operator | Method for comparing the key and value. Either Exists or Equal. | String | (None) |
| scheduling.extraTolerations[].value | Value to compare when the operator is Equal. | String | (None) |
| scheduling.extraTolerations[].effect | Effect of the target taint. Either NoSchedule, PreferNoSchedule, or NoExecute. | String | (None) |
| scheduling.extraTolerations[].tolerationSeconds | Time in seconds to remain on the node when the effect is NoExecute | Integer | (None) |
The following is an example.
{
"scheduling": {
"nodeSelector": {
"role": "storage"
},
"extraTolerations": [
{
"key": "dedicated",
"operator": "Equal",
"value": "storage",
"effect": "NoSchedule"
}
]
}
}
NKS NAS(NFS) CSI
This CSI driver uses NAS (NFS) volume as Kubernetes PersistentVolume. Use it when you need a shared volume that multiple pods can access simultaneously.
After installation, see the NAS volume CSI examples for usage instructions.
Settings
The available settings are as follows.
| Item | Description | Type | Default |
|---|---|---|---|
scheduling.nodeSelector |
Node label conditions for deploying components. | Object (string map) | (None) |
scheduling.extraTolerations |
|
Array | (None) |
scheduling.extraTolerations[].key |
Target taint key. | String | (None) |
scheduling.extraTolerations[].operator |
Method for comparing the key and value. Either Exists or Equal. |
String | (None) |
scheduling.extraTolerations[].value |
Value to compare when the operator is Equal. |
String | (None) |
scheduling.extraTolerations[].effect |
Effect of the target taint. Either NoSchedule, PreferNoSchedule, or NoExecute. |
String | (None) |
scheduling.extraTolerations[].tolerationSeconds |
Time in seconds to remain on the node when the effect is NoExecute. |
Integer | (None) |
The following is an example.
{
"scheduling": {
"nodeSelector": {
"role": "storage"
},
"extraTolerations": [
{
"key": "dedicated",
"operator": "Equal",
"value": "storage",
"effect": "NoSchedule"
}
]
}
}
ExternalDNS
This controller automatically registers and manages DNS names configured for Kubernetes Services and Ingresses with an external DNS service. Installing this add-on eliminates the need to manually manage domains exposed by workloads.
After installation, see the ExternalDNS use cases for usage instructions.
Settings
The settings provided by ExternalDNS are as follows.
| Item | Description | Type | Default | Example |
|---|---|---|---|---|
sources |
Resource types for which DNS records are created. 1 or more of service, ingress, and crd. |
Array | service, ingress, crd |
["ingress"] |
domainFilter |
|
String | (Empty) | example.com,foo.io |
annotationFilter |
Process only resources with the specified annotation. | String | (Empty) | external-dns.alpha.kubernetes.io/include=true |
labelFilter |
Process only resources with the specified label. | String | (Empty) | team=infra |
txtPrefix |
Prefix added to TXT record names used for ownership tracking. | String | _edns. |
_edns. |
txtSuffix |
|
String | (Empty) | -edns |
policy |
|
String | upsert-only |
sync |
logLevel |
Log output level. Either debug, info, warn, or error. |
String | info |
debug |
credentials.secretName |
|
String | (Empty) | external-dns-credentials |
scheduling.nodeSelector |
Node label conditions for deploying components. | Object (string map) | (None) | {"role":"external-dns"} |
scheduling.extraTolerations |
List of tolerations for deploying components to nodes with taints. | Array | (None) | — |
scheduling.extraTolerations[].key |
Target taint key. | String | (None) | dedicated |
scheduling.extraTolerations[].operator |
Method for comparing the key and value. Either Exists or Equal. |
String | (None) | Equal |
scheduling.extraTolerations[].value |
Value to compare when the operator is Equal. |
String | (None) | dns |
scheduling.extraTolerations[].effect |
Effect of the target taint. Either NoSchedule, PreferNoSchedule, or NoExecute. |
String | (None) | NoSchedule |
scheduling.extraTolerations[].tolerationSeconds |
Time in seconds to remain on the node when the effect is NoExecute. |
Integer | (None) | 300 |
The following is an example.
{
"sources": ["service", "ingress", "crd"],
"domainFilter": "example.com,foo.io",
"annotationFilter": "external-dns.alpha.kubernetes.io/include=true",
"labelFilter": "team=infra",
"txtPrefix": "",
"txtSuffix": "-edns",
"policy": "sync",
"logLevel": "info",
"credentials": {
"secretName": "external-dns-credentials"
},
"scheduling": {
"nodeSelector": {
"role": "external-dns"
},
"extraTolerations": [
{
"key": "dedicated",
"operator": "Equal",
"value": "dns",
"effect": "NoSchedule"
}
]
}
}
NKS Gateway API Adapter
This adapter connects Gateway API resources (Gateway, HTTPRoute) to NAVER Cloud ALB (Application Load Balancer). Installing this add-on allows you to configure external traffic routing using standard Gateway API resources.
After installation, see Using Gateway API for usage instructions.
Settings
The available settings are as follows.
| Item | Description | Type | Default |
|---|---|---|---|
scheduling.nodeSelector |
Node label conditions for deploying components. | Object (string map) | (None) |
scheduling.extraTolerations |
List of tolerations for deploying components to nodes with taints. | Array | (None) |
scheduling.extraTolerations[].key |
Target taint key. | String | (None) |
scheduling.extraTolerations[].operator |
Method for comparing the key and value. Either Exists or Equal. |
String | (None) |
scheduling.extraTolerations[].value |
Value to compare when the operator is Equal. |
String | (None) |
scheduling.extraTolerations[].effect |
Effect of the target taint. Either NoSchedule, PreferNoSchedule, or NoExecute. |
String | (None) |
scheduling.extraTolerations[].tolerationSeconds |
Time in seconds to remain on the node when the effect is NoExecute. |
Integer | (None) |
The following is an example.
{
"scheduling": {
"nodeSelector": {
"role": "gateway"
},
"extraTolerations": [
{
"key": "dedicated",
"operator": "Equal",
"value": "gateway",
"effect": "NoSchedule"
}
]
}
}
Version compatibility
The add-on versions available for installation vary depending on the cluster's Kubernetes version. When installing or editing an add-on, only versions compatible with the cluster can be selected. For supported versions of each add-on, see the version compatibility table in the Add-on release notes.