Skip to content

Commit cd79f1d

Browse files
authored
Merge pull request #50064 from rayandas/merged-main-dev-1.33
Merged main dev-1.33
2 parents 2c5cb62 + c74a403 commit cd79f1d

File tree

256 files changed

+9793
-764
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

256 files changed

+9793
-764
lines changed

Diff for: OWNERS_ALIASES

+1
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ aliases:
139139
sig-docs-ko-owners: # Admins for Korean content
140140
- gochist
141141
- jihoon-seo
142+
- jongwooo
142143
- seokho-son
143144
- yoonian
144145
- ysyukr

Diff for: content/en/blog/_posts/2025-02-03-introducing-jobset/index.md renamed to content/en/blog/_posts/2025-03-23-introducing-jobset/index.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
---
22
layout: blog
33
title: "Introducing JobSet"
4-
date: 2025-02-03
4+
date: 2025-03-23
55
slug: introducing-jobset
6-
draft: true
76
---
87

98
**Authors**: Daniel Vega-Myhre (Google), Abdullah Gharaibeh (Google), Kevin Hannon (Red Hat)

Diff for: content/en/case-studies/nokia/index.html

+2-4
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
logo: nokia_featured_logo.png
77

88
new_case_study_styles: true
9-
heading_background: /images/case-studies/nokia/banner1.jpg
10-
heading_title_logo: /images/nokia_logo.png
9+
heading_background: /images/case-studies/nokia/banner3.jpg
10+
heading_title_logo: /images/nokia-white-on-transparent.png
1111
subheading: >
1212
Nokia: Enabling 5G and DevOps at a Telecom Company with Kubernetes
1313
case_study_details:
@@ -41,7 +41,6 @@ <h2>Impact</h2>
4141
<p>Looking for a way to allow its teams to build products with infrastructure-agnostic behavior, the company decided to embrace containerization, Kubernetes, and other cloud native technologies, a move that is being made across the telecom industry. Since early 2018, "when people are picking up their phones and making a call on Nokia networks, they are creating containers in the background with Kubernetes," says Csatari. "Now, all the products are doing some kind of re-architecture work, and they're moving to Kubernetes."</p>
4242

4343
{{< case-studies/quote
44-
image="/images/case-studies/nokia/banner3.jpg"
4544
author="Gergely Csatari, Senior Open Source Engineer, Nokia"
4645
>}}
4746
"Having the community and CNCF around Kubernetes is not only important for having a connection to other companies who are using Kubernetes and a forum where you can ask or discuss features of Kubernetes. But as a company who would like to contribute to Kubernetes, it was very important to have a CLA (Contributors License Agreement) which is connected to the CNCF and not to a particular company. That was a critical step for us to start contributing to Kubernetes and Helm."
@@ -54,7 +53,6 @@ <h2>Impact</h2>
5453
<p>That meant that they needed to be able to set affinity and anti-affinity rules in their orchestration tools. "You cannot put all of the functions to the same physical host because physical hosts are failing," Csatari explains. "If you fail with one physical host, then you lose all of the core processing processes. Then there are no calls going through. So we have to divide them among the different physical hosts. At that time, only Kubernetes was able to provide these features. The simplicity of the label-based scheduling of Kubernetes was a sign that showed us this architecture will scale, will be stable, and will be good for our purposes."</p>
5554

5655
{{< case-studies/quote
57-
image="/images/case-studies/nokia/banner4.jpg"
5856
author="Gergely Csatari, Senior Open Source Engineer, Nokia"
5957
>}}
6058
"Kubernetes opened the window to all of these open source projects instead of implementing everything in house. Our engineers can focus more on the application level, which is actually the thing what we are selling, and not on the infrastructure level. For us, the most important thing about Kubernetes is it allows us to focus on value creation of our business."
82.3 KB
Loading
325 KB
Loading

Diff for: content/en/case-studies/nokia/nokia_featured_logo.svg

+686-1
Loading

Diff for: content/en/docs/tasks/debug/debug-cluster/crictl.md

-1
Original file line numberDiff line numberDiff line change
@@ -238,5 +238,4 @@ The output is similar to this:
238238
## {{% heading "whatsnext" %}}
239239

240240
* [Learn more about `crictl`](https://github.com/kubernetes-sigs/cri-tools).
241-
* [Map `docker` CLI commands to `crictl`](/docs/reference/tools/map-crictl-dockercli/).
242241

Diff for: content/en/training/_index.html

+19-1
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,24 @@ <h5>
145145
</div>
146146
</section>
147147

148+
149+
<section class="call-to-action">
150+
<div class="main-section">
151+
<div class="call-to-action" id="cta-kubestronaut">
152+
<div class="cta-text">
153+
<h2>Kubestronaut Program: Elevate Your Kubernetes Expertise</h2>
154+
<p> The CNCF's Kubestronaut Program celebrates and recognizes exceptional community leaders who have demonstrated a profound commitment to mastering Kubernetes. This prestigious initiative highlights individuals who have consistently invested in their ongoing education and achieved the highest levels of proficiency. To earn the esteemed title of Kubestronaut, individuals must successfully obtain and maintain all five CNCF Kubernetes certifications: Certified Kubernetes Administrator (CKA), Certified Kubernetes Application Developer (CKAD), Certified Kubernetes Security Specialist (CKS), Kubernetes and Cloud Native Associate (KCNA), and Kubernetes and Cloud Security Associate (KCSA). </p>
155+
</div>
156+
<div class="cta-img-container">
157+
<div class="logo-certification cta-image" id="logo-kubestronaut">
158+
<img src="/images/training/kubestronaut-stacked-color.svg" />
159+
</div>
160+
</div>
161+
</div>
162+
</div>
163+
</section>
164+
165+
148166
<div class="padded lighter-gray-bg">
149167
<div class="main-section two-thirds-centered">
150168
<center>
@@ -155,4 +173,4 @@ <h2>Kubernetes Training Partners</h2>
155173
<div class="main-section landscape-section">
156174
{{< cncf-landscape helpers=false category="special--kubernetes-training-partner" >}}
157175
</div>
158-
</div>
176+
</div>

Diff for: content/id/docs/concepts/security/overview.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Huawei Cloud | https://www.huaweicloud.com/intl/id-id/securecenter/overallsafety
3838
IBM Cloud | https://www.ibm.com/cloud/security |
3939
Microsoft Azure | https://docs.microsoft.com/en-us/azure/security/azure-security |
4040
Oracle Cloud Infrastructure | https://www.oracle.com/security/ |
41-
VMWare VSphere | https://www.vmware.com/security/hardening-guides.html |
41+
VMWare VSphere | https://www.vmware.com/solutions/security/hardening-guides |
4242

4343
Jika kamu mengoperasikan perangkat keras kamu sendiri, atau penyedia layanan cloud yang berbeda, kamu perlu merujuk pada dokumentasi penyedia layanan cloud yang kamu pakai untuk praktik keamanan terbaik.
4444

Diff for: content/ja/docs/concepts/security/_index.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ IBM Cloud | https://www.ibm.com/cloud/security |
5757
Microsoft Azure | https://docs.microsoft.com/en-us/azure/security/azure-security |
5858
Oracle Cloud Infrastructure | https://www.oracle.com/security |
5959
Tencent Cloud | https://www.tencentcloud.com/solutions/data-security-and-information-protection |
60-
VMware vSphere | https://www.vmware.com/security/hardening-guides |
60+
VMware vSphere | https://www.vmware.com/solutions/security/hardening-guides |
6161

6262
{{< /table >}}
6363

Diff for: content/ja/docs/concepts/security/overview.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ Huawei Cloud | https://www.huaweicloud.com/intl/ja-jp/securecenter/overallsafety
4646
IBM Cloud | https://www.ibm.com/cloud/security |
4747
Microsoft Azure | https://docs.microsoft.com/en-us/azure/security/azure-security |
4848
Oracle Cloud Infrastructure | https://www.oracle.com/security/ |
49-
VMWare VSphere | https://www.vmware.com/security/hardening-guides.html |
49+
VMWare VSphere | https://www.vmware.com/solutions/security/hardening-guides |
5050

5151
{{< /table >}}
5252

Diff for: content/ja/docs/concepts/workloads/autoscaling.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ KEDAは例えばキューのメッセージ数などの処理するべきイベ
100100

101101
ワークロードををスケールするためのもう一つの戦略は、例えばオフピークの時間帯にリソース消費を削減するために、スケーリング操作を**スケジュールする**ことです。
102102

103-
イベント駆動型オートスケーリングと同様に、そのような動作はKEDAを[`Cron`スケーラー](https://keda.sh/docs/2.13/scalers/cron/)と組み合わせて使用することで実現できます。
103+
イベント駆動型オートスケーリングと同様に、そのような動作はKEDAを[`Cron`スケーラー](https://keda.sh/docs/latest/scalers/cron/)と組み合わせて使用することで実現できます。
104104
`Cron`スケーラーによりワークロードをスケールインまたはスケールアウトするためのスケジュール(およびタイムゾーン)を定義できます。
105105

106106
## クラスターのインフラストラクチャーのスケーリング {#scaling-cluster-infrastructure}

Diff for: content/ja/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ as root:
170170
kubeadm join <control-plane-host>:<control-plane-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
171171
```
172172

173-
kubectlをroot以外のユーザーでも実行できるようにするには、次のコマンドを実行します。これらのコマンドは、`kubectl init`の出力の中にも書かれています。
173+
kubectlをroot以外のユーザーでも実行できるようにするには、次のコマンドを実行します。これらのコマンドは、`kubeadm init`の出力の中にも書かれています。
174174

175175
```bash
176176
mkdir -p $HOME/.kube

Diff for: content/ja/docs/tasks/access-application-cluster/ingress-minikube.md

-4
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,6 @@ weight: 110
114114
http://172.17.0.15:31637
115115
```
116116

117-
{{< note >}}
118-
Katacoda環境の場合のみ: 上部のterminalパネルでプラスのアイコンをクリックして、**Select port to view on Host 1**(Host 1を表示するポートを選択)をクリックします。NodePort(上の例では`31637`)を入力して、**Display Port**(ポートを表示)をクリックしてください。
119-
{{< /note >}}
120-
121117
出力は次のようになります。
122118

123119
```shell

Diff for: content/ja/docs/tasks/manage-daemon/_index.md

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
title: "クラスターデーモンの管理"
3+
description: ローリングアップデートの実行など、DaemonSetを管理するための一般的なタスクを実行します。
4+
weight: 130
5+
---
6+
+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
---
2+
title: 基本的なDaemonSetを構築する
3+
content_type: task
4+
weight: 5
5+
---
6+
<!-- overview -->
7+
8+
このページでは、Kubernetesクラスターの全てのノード上でPodを実行する、基本的な{{< glossary_tooltip text="DaemonSet" term_id="daemonset" >}}を構築する方法について示します。
9+
ホストからファイルをマウントし、[Initコンテナ](/ja/docs/concepts/workloads/pods/init-containers/)を使用してその内容をログに記録して、pauseコンテナを利用するという単純なユースケースを取り上げます。
10+
11+
## {{% heading "prerequisites" %}}
12+
13+
{{< include "task-tutorial-prereqs.md" >}}
14+
15+
DaemonSetの動作を示すために、少なくとも2つのノード(1つのコントロールプレーンと1つのワーカーノード)を持つKubernetesクラスターを用意します。
16+
17+
## DaemonSetの定義
18+
19+
このタスクでは、Podのコピーが全てのノード上でスケジュールされるようにする、基本的なDaemonSetが作成されます。
20+
PodはInitコンテナを使用してホストから`/etc/machine-id`の内容を読み込んでログに記録し、メインのコンテナはPodを実行し続ける`pause`コンテナとなります。
21+
22+
{{% code_sample file="application/basic-daemonset.yaml" %}}
23+
24+
1. (YAML)マニフェストに基づいたDaemonSetを作成します:
25+
26+
```shell
27+
kubectl apply -f https://k8s.io/examples/application/basic-daemonset.yaml
28+
```
29+
30+
1. 適用すると、DaemonSetがクラスター内の全てのノードでPodを実行していることを確認できます:
31+
32+
```shell
33+
kubectl get pods -o wide
34+
```
35+
36+
出力には、以下のようにノード毎に1つのPodが一覧表示されます:
37+
38+
```
39+
NAME READY STATUS RESTARTS AGE IP NODE
40+
example-daemonset-xxxxx 1/1 Running 0 5m x.x.x.x node-1
41+
example-daemonset-yyyyy 1/1 Running 0 5m x.x.x.x node-2
42+
```
43+
44+
1. ホストからマウントされたログディレクトリをチェックすることで、ログに記録された`/etc/machine-id`ファイルの内容を調べることができます:
45+
46+
```shell
47+
kubectl exec <pod-name> -- cat /var/log/machine-id.log
48+
```
49+
50+
`<pod-name>`は1つのPodの名前です。
51+
52+
## {{% heading "cleanup" %}}
53+
54+
DaemonSetを削除するためには、次のコマンドを実行します:
55+
56+
```shell
57+
kubectl delete --cascade=foreground --ignore-not-found --now daemonsets/example-daemonset
58+
```
59+
60+
この単純なDaemonSetの例では、Initコンテナやホストパスボリュームなどの主要なコンポーネントを紹介しており、より高度なユースケースに応じて拡張することができます。
61+
詳細については[DaemonSet](/ja/docs/concepts/workloads/controllers/daemonset/)を参照してください。
62+
63+
## {{% heading "whatsnext" %}}
64+
65+
* [DaemonSet上でローリングアップデートを実施する](/docs/tasks/manage-daemon/update-daemon-set/)を参照
66+
* [既存のDaemonSetのPodを再利用してDaemonSetを作成する](/ja/docs/concepts/workloads/controllers/daemonset/)を参照
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
---
2+
title: PodからKubernetes APIにアクセスする
3+
content_type: task
4+
weight: 120
5+
---
6+
7+
<!-- overview -->
8+
9+
このガイドでは、Pod内からKubernetes APIにアクセスする方法を示します。
10+
11+
## {{% heading "prerequisites" %}}
12+
13+
{{< include "task-tutorial-prereqs.md" >}}
14+
15+
<!-- steps -->
16+
17+
## Pod内からAPIへのアクセス
18+
19+
Podの中からAPIにアクセスする時、APIサーバーの場所の検出と認証は、外部クライアントの場合とは若干異なります。
20+
21+
PodからKubernetes APIを使用する最も簡単な方法は、公式の[クライアントライブラリ](/docs/reference/using-api/client-libraries/)を使用することです。
22+
これらのライブラリは自動的にAPIサーバーを検出して認証できます。
23+
24+
### 公式クライアントライブラリの使用
25+
26+
Podの中からKubernetes APIに接続する推奨された方法として次のものがあります:
27+
28+
- Goクライアントの場合、公式の[Goクライアントライブラリ](https://github.com/kubernetes/client-go/)を使用します。
29+
`rest.InClusterConfig()`関数はAPIホストの探索と認証を自動的に処理します。
30+
[ここにあるサンプル](https://git.k8s.io/client-go/examples/in-cluster-client-configuration/main.go)を参照してください。
31+
32+
- Pythonクライアントの場合、公式の[Pythonクライアントライブラリ](https://github.com/kubernetes-client/python/)を使用します。
33+
`config.load_incluster_config()`関数はAPIホストの探索と認証を自動的に処理します。
34+
[ここにあるサンプル](https://github.com/kubernetes-client/python/blob/master/examples/in_cluster_config.py)を参照してください。
35+
36+
- 他にも多くのライブラリが利用できます。
37+
[クライアントライブラリ](/docs/reference/using-api/client-libraries/)のページを参照してください。
38+
39+
いずれの場合も、APIサーバーと安全に通信するために、Podのサービスアカウントの資格情報が使用されます。
40+
41+
### REST APIによる直接アクセス
42+
43+
コンテナは、Pod内での実行中に環境変数`KUBERNETES_SERVICE_HOST``KUBERNETES_SERVICE_PORT_HTTPS`を取得することで、Kubernetes APIサーバーのHTTPSのURLを作成することができます。
44+
APIサーバーのクラスター内アドレスは、PodがローカルAPIサーバーのDNS名として`kubernetes.default.svc`を参照できるように、`default` Namespaceの`kubernetes`という名前のServiceにも公開されます。
45+
46+
{{< note >}}
47+
Kubernetesは、APIサーバーがホスト名`kubernetes.default.svc`に対する有効な証明書を持っていることを保証しません。
48+
しかし、コントロールプレーンは`$KUBERNETES_SERVICE_HOST`によって表されるホスト名またはIPアドレスに対する有効な証明書を提示することが期待**されます**
49+
{{< /note >}}
50+
51+
APIサーバーに対して認証を行う推奨された方法は、[サービスアカウント](/docs/tasks/configure-pod-container/configure-service-account/)の資格情報を使用することです。
52+
既定では、Podはサービスアカウントと関連づけられており、そのサービスアカウントに対する資格情報(トークン)が、そのPod内の各コンテナのファイルシステムツリーの`/var/run/secrets/kubernetes.io/serviceaccount/token`内に配置されます。
53+
54+
利用可能であれば、証明書バンドルが各コンテナのファイルシステムツリーの`/var/run/secrets/kubernetes.io/serviceaccount/ca.crt`に配置され、APIサーバーが提供する証明書を検証するために使用されます。
55+
56+
最後に、NamespaceスコープのAPIの操作に対して使用される既定のNamespaceは、各コンテナの`/var/run/secrets/kubernetes.io/serviceaccount/namespace`にあるファイルに記載されます。
57+
58+
### kubectl proxyの使用
59+
60+
公式のクライアントライブラリを使用せずにAPIを呼び出したい場合は、Pod内の新しいサイドカーコンテナの[コマンド](/docs/tasks/inject-data-application/define-command-argument-container/)として`kubectl proxy`を実行することができます。
61+
こうすることで、`kubectl proxy`がAPIを認証してPodの`localhost`インターフェースに公開するため、Pod内の他のコンテナが直接使用することができます。
62+
63+
### プロキシを使用しない方法
64+
65+
認証トークンを直接APIサーバーに渡すことで、kubectl proxyの使用を避けることも可能です。
66+
内部の証明書によって接続を保護します。
67+
68+
```shell
69+
# 内部のAPIサーバーのホスト名の指定
70+
APISERVER=https://kubernetes.default.svc
71+
72+
# ServiceAccountトークンのパス
73+
SERVICEACCOUNT=/var/run/secrets/kubernetes.io/serviceaccount
74+
75+
# PodのNamespaceの読み込み
76+
NAMESPACE=$(cat ${SERVICEACCOUNT}/namespace)
77+
78+
# ServiceAccountのBearerトークンを取得
79+
TOKEN=$(cat ${SERVICEACCOUNT}/token)
80+
81+
# 内部の認証局(CA)の参照
82+
CACERT=${SERVICEACCOUNT}/ca.crt
83+
84+
# トークンを用いてAPIの探索
85+
curl --cacert ${CACERT} --header "Authorization: Bearer ${TOKEN}" -X GET ${APISERVER}/api
86+
```
87+
88+
次のような出力になります:
89+
90+
```json
91+
{
92+
"kind": "APIVersions",
93+
"versions": ["v1"],
94+
"serverAddressByClientCIDRs": [
95+
{
96+
"clientCIDR": "0.0.0.0/0",
97+
"serverAddress": "10.0.1.149:443"
98+
}
99+
]
100+
}
101+
```

Diff for: content/ja/examples/application/basic-daemonset.yaml

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
apiVersion: apps/v1
2+
kind: DaemonSet
3+
metadata:
4+
name: example-daemonset
5+
spec:
6+
selector:
7+
matchLabels:
8+
app.kubernetes.io/name: example
9+
template:
10+
metadata:
11+
labels:
12+
app.kubernetes.io/name: example
13+
spec:
14+
containers:
15+
- name: pause
16+
image: registry.k8s.io/pause
17+
initContainers:
18+
- name: log-machine-id
19+
image: busybox:1.37
20+
command: ['sh', '-c', 'cat /etc/machine-id > /var/log/machine-id.log']
21+
volumeMounts:
22+
- name: machine-id
23+
mountPath: /etc/machine-id
24+
readOnly: true
25+
- name: log-dir
26+
mountPath: /var/log
27+
volumes:
28+
- name: machine-id
29+
hostPath:
30+
path: /etc/machine-id
31+
type: File
32+
- name: log-dir
33+
hostPath:
34+
path: /var/log
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
title: Aktualizacja materiałów źródłowych
3+
main_menu: true
4+
weight: 80
5+
---
6+
7+
Tematy w tej sekcji opisują, jak aktualizować (czyli ponownie
8+
wygenerować) materiały źródłowe (ang. reference documentation) Kubernetesa.
9+
10+
Aby zbudować materiały źródłowe, zapoznaj się z następującym przewodnikiem:
11+
12+
* [Szybki start generowania materiałów źródłowych](/docs/contribute/generate-ref-docs/quickstart/)

0 commit comments

Comments
 (0)