mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-08-10 08:27:25 +00:00
fix(content): harden Docker practice guide
This commit is contained in:
@@ -171,13 +171,13 @@ $ sudo systemctl enable containerd
|
||||
$ sudo systemctl start containerd
|
||||
|
||||
$ sudo kubeadm init \
|
||||
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
|
||||
--pod-network-cidr 10.244.0.0/16 \
|
||||
--cri-socket unix:///run/containerd/containerd.sock \
|
||||
--v 5
|
||||
```
|
||||
|
||||
* `--pod-network-cidr 10.244.0.0/16` 参数与后续 CNI 插件有关,这里以 `flannel` 为例,若后续部署其他类型的网络插件请更改此参数。
|
||||
* kubeadm 默认使用 `registry.k8s.io` 拉取 Kubernetes 控制平面镜像。受限网络环境可通过 kubeadm 配置文件中的 `imageRepository` 指向受信任镜像仓库;不要把第三方镜像仓库当成通用默认值。
|
||||
|
||||
> 若 `kubeadm` 预检失败,应按提示修复缺失依赖、内核参数、swap 或运行时配置。实验环境确需忽略预检时,只忽略明确理解且可接受的单项检查,不建议使用 `--ignore-preflight-errors=all`。
|
||||
|
||||
|
||||
@@ -197,14 +197,14 @@ $ sudo systemctl daemon-reload
|
||||
#### master
|
||||
|
||||
```bash
|
||||
$ sudo kubeadm init --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
|
||||
--pod-network-cidr 10.244.0.0/16 \
|
||||
$ sudo kubeadm init --pod-network-cidr 10.244.0.0/16 \
|
||||
--cri-socket unix:///var/run/cri-dockerd.sock \
|
||||
--v 5
|
||||
```
|
||||
|
||||
* `--cri-socket unix:///var/run/cri-dockerd.sock` 参数指定使用 cri-dockerd 作为容器运行时接口。
|
||||
* `--pod-network-cidr 10.244.0.0/16` 参数与后续 CNI 插件有关,这里以 `flannel` 为例,若后续部署其他类型的网络插件请更改此参数。
|
||||
* kubeadm 默认使用 `registry.k8s.io` 拉取 Kubernetes 控制平面镜像。受限网络环境可通过 kubeadm 配置文件中的 `imageRepository` 指向受信任镜像仓库;不要把第三方镜像仓库当成通用默认值。
|
||||
|
||||
> 若 `kubeadm` 预检失败,应按提示修复缺失依赖、内核参数、swap 或运行时配置。实验环境确需忽略预检时,只忽略明确理解且可接受的单项检查,不建议使用 `--ignore-preflight-errors=all`。
|
||||
|
||||
|
||||
@@ -4,15 +4,17 @@
|
||||
|
||||
### 14.3.1 启用 Kubernetes
|
||||
|
||||
在 Docker Desktop 设置页面,点击 `Kubernetes`,选择 `Enable Kubernetes`,稍等片刻,看到左下方 `Kubernetes` 变为 `running`,Kubernetes 启动成功。
|
||||
在 Docker Desktop 设置页面,进入 `Kubernetes`,创建或启用集群。较新的 Docker Desktop 可选择 `kind` 或 `kubeadm` 作为集群创建方式;日常本地开发优先选择 `kind`,因为它支持多节点和版本选择。
|
||||
|
||||

|
||||
|
||||
> 注意:Kubernetes 的镜像存储在 `registry.k8s.io`,如果国内网络无法直接访问,可以在 Docker Desktop 配置中的 `Docker Engine` 处配置镜像加速器,或者利用国内云服务商的镜像仓库手动拉取镜像并 retag。
|
||||
> 注意:Docker Desktop Kubernetes 的控制平面镜像默认从 Docker Hub 拉取,例如 `docker.io/docker/desktop-*` 或 `docker.io/kindest/node:<tag>`。如果企业网络不能访问 Docker Hub,应按 Docker Desktop 的 `KubernetesImagesRepository` 设置镜像仓库,并用 `docker desktop kubernetes images list`(Docker Desktop 4.44+)或 `docker ps` 确认实际镜像标签。普通 Docker Engine 的 `registry-mirrors` 不会自动改写这些控制平面镜像。
|
||||
|
||||
### 14.3.2 测试
|
||||
|
||||
```bash
|
||||
$ kubectl version
|
||||
$ kubectl config use-context docker-desktop
|
||||
$ kubectl get nodes
|
||||
```
|
||||
如果正常输出信息,则证明 Kubernetes 成功启动。
|
||||
如果 `kubectl get nodes` 显示节点为 `Ready`,则证明 Kubernetes 成功启动。
|
||||
|
||||
@@ -1,12 +1,27 @@
|
||||
## 14.7 部署 Dashboard
|
||||
## 14.7 可视化管理界面
|
||||
|
||||
[Kubernetes Dashboard](https://github.com/kubernetes/dashboard) 是基于网页的 Kubernetes 用户界面。
|
||||
[Kubernetes Dashboard](https://github.com/kubernetes-retired/dashboard) 是历史上常用的 Kubernetes Web UI,但项目已停止维护。
|
||||
|
||||
> **注意**:原 `kubernetes/dashboard` 项目已于 2026 年 1 月 21 日归档停止维护。推荐使用 [Headlamp](https://headlamp.dev/) 等替代方案。以下内容仅供历史参考,基于归档前的最新 Helm 安装方式。
|
||||
> **注意**:Kubernetes 官方文档已将 Dashboard 标记为 deprecated and unmaintained,新安装建议考虑 [Headlamp](https://headlamp.dev/) 等仍在维护的替代方案。以下 Dashboard 内容仅供历史迁移或存量环境参考。
|
||||
|
||||

|
||||
|
||||
### 14.7.1 部署
|
||||
### 14.7.1 推荐替代:Headlamp
|
||||
|
||||
Headlamp 是 Kubernetes SIG UI 下的现代 Web UI,可通过 Helm 安装:
|
||||
|
||||
```bash
|
||||
$ helm repo add headlamp https://kubernetes-sigs.github.io/headlamp/
|
||||
$ helm install headlamp headlamp/headlamp --namespace kube-system
|
||||
```
|
||||
|
||||
本地访问时优先使用端口转发,避免直接把管理界面暴露到公网:
|
||||
|
||||
```bash
|
||||
$ kubectl -n kube-system port-forward svc/headlamp 4466:80
|
||||
```
|
||||
|
||||
### 14.7.2 历史 Dashboard 部署
|
||||
|
||||
Dashboard 7.0+ 版本仅支持通过 Helm 安装:
|
||||
|
||||
@@ -17,7 +32,7 @@ $ helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-da
|
||||
--create-namespace --namespace kubernetes-dashboard
|
||||
```
|
||||
|
||||
### 14.7.2 访问
|
||||
### 14.7.3 访问
|
||||
|
||||
通过端口转发访问 Dashboard:
|
||||
|
||||
@@ -27,19 +42,15 @@ $ kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard-kong-pro
|
||||
|
||||
然后在浏览器打开 `https://localhost:8443` 即可访问。
|
||||
|
||||
### 14.7.3 登录
|
||||
### 14.7.4 登录
|
||||
|
||||
为历史 Dashboard 创建只读服务账户并获取短期登录令牌。不要为 Dashboard 创建 `cluster-admin` 绑定;如果确实需要临时管理员权限,应走单独的 break-glass 审批和审计流程。
|
||||
|
||||
```bash
|
||||
$ kubectl create sa dashboard-readonly -n kubernetes-dashboard
|
||||
|
||||
$ kubectl create clusterrole dashboard-readonly \
|
||||
--verb=get,list,watch \
|
||||
--resource=pods,deployments,services,configmaps,namespaces,nodes
|
||||
|
||||
$ kubectl create clusterrolebinding dashboard-readonly \
|
||||
--clusterrole=dashboard-readonly \
|
||||
--clusterrole=view \
|
||||
--serviceaccount=kubernetes-dashboard:dashboard-readonly
|
||||
|
||||
$ kubectl create token dashboard-readonly -n kubernetes-dashboard --duration=1h
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 第十四章 部署 Kubernetes
|
||||
|
||||
目前,Kubernetes 支持在多种环境下使用,包括本地主机 (Ubuntu、Debian、CentOS、Fedora 等)、云服务 ([腾讯云](https://cloud.tencent.com/act/cps/redirect?redirect=10058&cps_key=3a5255852d5db99dcd5da4c72f05df61)、[阿里云](https://www.aliyun.com/product/kubernetes?source=5176.11533457&userCode=8lx5zmtu&type=copy)、[百度云](https://cloud.baidu.com/product/cce.html)等)。
|
||||
目前,Kubernetes 支持在多种环境下使用,包括本地主机 (Ubuntu、Debian、CentOS、Fedora 等)、云服务 ([腾讯云 TKE](https://cloud.tencent.com/product/tke)、[阿里云 ACK](https://cn.aliyun.com/product/ack)、[百度云](https://cloud.baidu.com/product/cce.html)等)。
|
||||
|
||||
你可以使用以下几种方式部署 Kubernetes,接下来的小节会对各种方式进行详细介绍。
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
* [Kind - Kubernetes IN Docker](14.4_kind.md)
|
||||
* [K3s - 轻量级 Kubernetes](14.5_k3s.md)
|
||||
* [一步步部署 Kubernetes 集群](14.6_systemd.md)
|
||||
* [部署 Dashboard](14.7_dashboard.md)
|
||||
* [可视化管理界面:Headlamp 与历史 Dashboard](14.7_dashboard.md)
|
||||
* [Kubernetes 命令行 kubectl](14.8_kubectl.md)
|
||||
|
||||
除了上述方式,企业生产环境中还有两个常见的部署工具值得关注:
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
### 延伸阅读
|
||||
|
||||
- [容器编排基础](../13_kubernetes_concepts/README.md):Kubernetes 核心概念
|
||||
- [Dashboard](14.7_dashboard.md):部署可视化管理界面
|
||||
- [可视化管理界面](14.7_dashboard.md):Headlamp 与历史 Dashboard 迁移参考
|
||||
- [kubectl](14.8_kubectl.md):命令行工具使用指南
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user