Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import KubeAPIServerMain from '@site/docs/tech-docs/kubernetes/certificates/comp
import ETCDClientETCDMain from '@site/docs/tech-docs/etcd/certificates/components/etcd/etcdClient/main.mdx'
import ETCDServerMain from '@site/docs/tech-docs/etcd/certificates/components/etcd/etcdServer/main.mdx'
import ETCDPeerMain from '@site/docs/tech-docs/etcd/certificates/components/etcd/etcdPeer/main.mdx'
import ControllerServerMain from '@site/docs/tech-docs/kubernetes/certificates/components/kubeControllerManager/kubeControllerManagerServer/main.mdx'
import SchedulerServerMain from '@site/docs/tech-docs/kubernetes/certificates/components/kubeScheduler/kubeSchedulerServer/main.mdx'

import TabItem from '@theme/TabItem'
import Tabs from '@theme/Tabs'
Expand Down Expand Up @@ -91,4 +93,24 @@ import Tabs from '@theme/Tabs'
<ETCDPeerMain />
</details>
</TabItem>
<TabItem value="Controller server">
<details open className="custom-gray-block">
<summary>
<div style={{ display: 'flex', justifyContent: 'space-between', flexWrap: 'wrap' }}>
<p style={{ marginBottom: 0 }}>Controller server</p>
</div>
</summary>
<ControllerServerMain />
</details>
</TabItem>
<TabItem value="Scheduler server">
<details open className="custom-gray-block">
<summary>
<div style={{ display: 'flex', justifyContent: 'space-between', flexWrap: 'wrap' }}>
<p style={{ marginBottom: 0 }}>Scheduler server</p>
</div>
</summary>
<SchedulerServerMain />
</details>
</TabItem>
</Tabs>
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,15 @@ import ETCDPeerOpenssl from '@site/docs/tech-docs/etcd/certificates/components/e
import ETCDPeerOpensslStatus from '@site/docs/tech-docs/etcd/certificates/components/etcd/etcdPeer/checks/statusOpenssl.mdx'
import ETCDPeerKubeadmStatus from '@site/docs/tech-docs/etcd/certificates/components/etcd/etcdPeer/checks/statusKubeadm.mdx'

import KubeControllerManagerOpenssl from '@site/docs/tech-docs/kubernetes/certificates/components/kubeControllerManager/kubeControllerManagerServer/openssl.mdx'
import KubeControllerManagerOpensslStatus from '@site/docs/tech-docs/kubernetes/certificates/components/kubeControllerManager/kubeControllerManagerServer/checks/statusOpenssl.mdx'
import KubeControllerManagerKubeadmStatus from '@site/docs/tech-docs/kubernetes/certificates/components/kubeControllerManager/kubeControllerManagerServer/checks/statusKubeadm.mdx'


import KubeSchedulerOpenssl from '@site/docs/tech-docs/kubernetes/certificates/components/kubeScheduler/kubeSchedulerServer/openssl.mdx'
import KubeSchedulerOpensslStatus from '@site/docs/tech-docs/kubernetes/certificates/components/kubeScheduler/kubeSchedulerServer/checks/statusOpenssl.mdx'
import KubeSchedulerKubeadmStatus from '@site/docs/tech-docs/kubernetes/certificates/components/kubeScheduler/kubeSchedulerServer/checks/statusKubeadm.mdx'

import JoinAllCertsGen from '@site/docs/tech-docs/kubernetes/certificates/components/_kubeadm/joinAllCertsGen.mdx'

import TabItem from '@theme/TabItem'
Expand Down Expand Up @@ -188,4 +197,46 @@ import Tabs from '@theme/Tabs'
</Tabs>
</details>
</TabItem>
<TabItem value="Controller server">
<details open className="custom-gray-block">
<summary>
<div style={{ display: 'flex', justifyContent: 'space-between', flexWrap: 'wrap' }}>
<p style={{ marginBottom: 0 }}>Controller server</p>
</div>
</summary>
<Tabs groupId="install-type">
<TabItem value="HardWay">
<KubeControllerManagerOpenssl />
<KubeControllerManagerOpensslStatus />
</TabItem>
<TabItem value="Kubeadm">
:::danger
Просьба обратить внимание, что kubeadm не управляет данными сертификатами.
Используйте HardWay режим
:::
</TabItem>
</Tabs>
</details>
</TabItem>
<TabItem value="Scheduler server">
<details open className="custom-gray-block">
<summary>
<div style={{ display: 'flex', justifyContent: 'space-between', flexWrap: 'wrap' }}>
<p style={{ marginBottom: 0 }}>Scheduler server</p>
</div>
</summary>
<Tabs groupId="install-type">
<TabItem value="HardWay">
<KubeSchedulerOpenssl />
<KubeSchedulerOpensslStatus />
</TabItem>
<TabItem value="Kubeadm">
:::danger
Просьба обратить внимание, что kubeadm не управляет данными сертификатами.
Используйте HardWay режим
:::
</TabItem>
</Tabs>
</details>
</TabItem>
</Tabs>
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<details open className="custom-blue-block">
<summary>Проверка готовности сертификата</summary>
:::warning Обратите ВНИМАНИЕ!
kubeadm не отображает статус сертификата, используемого компонентом `kubelet`.
:::
</details>
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import CodeBlock from '@theme/CodeBlock'
import dedent from 'ts-dedent'
import { CERTIFICATES } from '@site/src/constants/kubernetes/certs'
import { CUSTOM_VALUE } from '@site/src/constants/kubernetes/customValue'

<details className="custom-blue-block">
<summary>Проверка готовности сертификата</summary>
:::warning Обратите ВНИМАНИЕ!

Данный раздел зависит от следующих разделов:
- [SSL Certificate Check](/docs/tech-docs/kubernetes/certificates/examination/examinationOpensslComponent.mdx).
:::

<CodeBlock language="bash">
{dedent`
${CUSTOM_VALUE.kubernetesBaseFolderPath.value}/openssl/cert-report.sh ${CERTIFICATES.kubernetesControllerManagerServer.crtPath}
`}
</CodeBlock>

:::note Вывод команды
<CodeBlock language="bash">
{dedent`
CERTIFICATE EXPIRES RESIDUAL TIME CERTIFICATE AUTHORITY EXTERNALLY MANAGED
controller-manager-server Oct 22, 2025 22:06 UTC 364d kubernetes no
`}
</CodeBlock>
:::

</details>
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import TabItem from '@theme/TabItem'
import Tabs from '@theme/Tabs'
import Openssl from '@site/docs/tech-docs/kubernetes/certificates/components/kubeControllerManager/kubeControllerManagerServer/openssl.mdx'
import StatusOpenssl from '@site/docs/tech-docs/kubernetes/certificates/components/kubeControllerManager/kubeControllerManagerServer/checks/statusOpenssl.mdx'
import StatusKubeadm from '@site/docs/tech-docs/kubernetes/certificates/components/kubeControllerManager/kubeControllerManagerServer/checks/statusKubeadm.mdx'


<Tabs groupId="install-type">

<TabItem value="HardWay">
<Openssl />
<StatusOpenssl />
</TabItem>

<TabItem value="Kubeadm">
:::danger
Просьба обратить внимание, что kubeadm не управляет данными сертификатами.
Используйте HardWay режим
:::
</TabItem>

</Tabs>
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
import { CERTIFICATES } from '@site/src/constants/kubernetes/certs'
import { CUSTOM_VALUE } from '@site/src/constants/kubernetes/customValue'

import CodeBlock from '@theme/CodeBlock'
import dedent from 'ts-dedent'

<h4>Переменные окружения</h4>
<CodeBlock language="bash">
{dedent`
export MACHINE_LOCAL_ADDRESS=${CUSTOM_VALUE.virtualMachineLocalAddress.value}
`}
</CodeBlock>

<h4>Рабочая директория</h4>
<CodeBlock language="bash">
{dedent`
mkdir -p ${CUSTOM_VALUE.kubernetesBaseFolderPath.value}/pki
mkdir -p ${CUSTOM_VALUE.kubernetesBaseFolderPath.value}/openssl/csr
`}
</CodeBlock>

<h4>Конфигурация</h4>
<CodeBlock language="bash">
{dedent`
cat <<EOF > ${CERTIFICATES.kubernetesControllerManagerServer.crtConf}
[ req ]
default_bits = ${CERTIFICATES.kubernetesControllerManagerServer.keySize}
prompt = no
default_md = sha256
distinguished_name = dn
req_extensions = req_ext

[ req_ext ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = kube-controller-manager
DNS.2 = kube-controller-manager.kube-system
DNS.3 = kube-controller-manager.kube-system.svc
IP.1 = 127.0.0.1
IP.2 = 0:0:0:0:0:0:0:1
IP.3 = $\{MACHINE_LOCAL_ADDRESS}

[ dn ]
CN = "${CERTIFICATES.kubernetesControllerManagerServer.cname}"

[ v3_ext ]
authorityKeyIdentifier=keyid,issuer:always
basicConstraints=CA:FALSE
keyUsage=keyEncipherment,dataEncipherment
extendedKeyUsage=serverAuth
subjectAltName=@alt_names
EOF
`}
</CodeBlock>

<h4>Генерация приватного ключа</h4>
<CodeBlock language="bash">
{dedent`
openssl genrsa \\
-out ${CERTIFICATES.kubernetesControllerManagerServer.keyPath} ${CERTIFICATES.kubernetesControllerManagerServer.keySize}
`}
</CodeBlock>

<h4>Генерация CSR</h4>
<CodeBlock language="bash">
{dedent`
openssl req \\
-new \\
-key ${CERTIFICATES.kubernetesControllerManagerServer.keyPath} \\
-out ${CERTIFICATES.kubernetesControllerManagerServer.csrPath} \\
-config ${CERTIFICATES.kubernetesControllerManagerServer.crtConf}
`}
</CodeBlock>

<h4>Подпись CSR</h4>
<CodeBlock language="bash">
{dedent`
openssl x509 \\
-req \\
-days 365 \\
-sha256 \\
-outform PEM \\
-CA ${CERTIFICATES.kubernetesCA.crtPath} \\
-CAkey ${CERTIFICATES.kubernetesCA.keyPath} \\
-CAcreateserial \\
-in ${CERTIFICATES.kubernetesControllerManagerServer.csrPath} \\
-out ${CERTIFICATES.kubernetesControllerManagerServer.crtPath} \\
-extensions v3_ext \\
-extfile ${CERTIFICATES.kubernetesControllerManagerServer.crtConf}
`}
</CodeBlock>
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<details open className="custom-blue-block">
<summary>Проверка готовности сертификата</summary>
:::warning Обратите ВНИМАНИЕ!
kubeadm не отображает статус сертификата, используемого компонентом `kubelet`.
:::
</details>
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import CodeBlock from '@theme/CodeBlock'
import dedent from 'ts-dedent'
import { CERTIFICATES } from '@site/src/constants/kubernetes/certs'
import { CUSTOM_VALUE } from '@site/src/constants/kubernetes/customValue'

<details className="custom-blue-block">
<summary>Проверка готовности сертификата</summary>
:::warning Обратите ВНИМАНИЕ!

Данный раздел зависит от следующих разделов:
- [SSL Certificate Check](/docs/tech-docs/kubernetes/certificates/examination/examinationOpensslComponent.mdx).
:::

<CodeBlock language="bash">
{dedent`
${CUSTOM_VALUE.kubernetesBaseFolderPath.value}/openssl/cert-report.sh ${CERTIFICATES.kubernetesSchedulerServer.crtPath}
`}
</CodeBlock>

:::note Вывод команды
<CodeBlock language="bash">
{dedent`
CERTIFICATE EXPIRES RESIDUAL TIME CERTIFICATE AUTHORITY EXTERNALLY MANAGED
scheduler-server Oct 22, 2025 22:06 UTC 364d kubernetes no
`}
</CodeBlock>
:::

</details>
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import TabItem from '@theme/TabItem'
import Tabs from '@theme/Tabs'
import Openssl from '@site/docs/tech-docs/kubernetes/certificates/components/kubeScheduler/kubeSchedulerServer/openssl.mdx'
import StatusOpenssl from '@site/docs/tech-docs/kubernetes/certificates/components/kubeScheduler/kubeSchedulerServer/checks/statusOpenssl.mdx'
import StatusKubeadm from '@site/docs/tech-docs/kubernetes/certificates/components/kubeScheduler/kubeSchedulerServer/checks/statusKubeadm.mdx'


<Tabs groupId="install-type">

<TabItem value="HardWay">
<Openssl />
<StatusOpenssl />
</TabItem>

<TabItem value="Kubeadm">
:::danger
Просьба обратить внимание, что kubeadm не управляет данными сертификатами.
Используйте HardWay режим
:::
</TabItem>

</Tabs>
Loading