Kubernetes——部署

发布时间:2026/6/23 10:41:18

Kubernetes——部署 1、准备工作版本v1.3.5部署方式kubeadm服务器龙蜥8.10节点一台master两台node根据最新的官方文档Kubernetes v1.35 对运行环境有明确的要求请务必在每台节点机器上完成以下检查和配置。准备项具体要求验证/配置方法 (Linux)操作系统支持 Linux (Debian/Red Hat 系等) 或 Windows Server。建议使用 Ubuntu 24.04 LTS、Debian 12、CentOS 9 等现代发行版。cat /etc/os-release硬件资源控制平面节点至少 2 CPU 核心2 GB 内存。所有节点建议 2 CPU 核心2 GB 内存确保节点间网络互通。lscpu,free -h主机标识所有节点的MAC 地址和product_uuid必须唯一。ip link或ifconfig -a查看 MACsudo cat /sys/class/dmi/id/product_uuid查看 UUID。网络正确配置网络适配器确保 Kubernetes 组件之间及与 API Server 的端口可通如 6443。关键端口需开放可使用nc 127.0.0.1 6443 -zv -w 2检查。Linux 内核必须支持并配置为使用 cgroup v2。Kubernetes v1.35 已移除对 cgroup v1 的支持若使用 v1kubelet 将无法启动。stat -fc %T /sys/fs/cgroup/若输出cgroup2fs则表示已使用 cgroup v2。容器运行时必须安装一个兼容 CRI (容器运行时接口) 的运行时如containerd v2.0(v1.x 的支持已终止) 或 CRI-O。根据所选运行时安装。后续步骤会详述。Swap 内存kubelet 默认无法在开启 Swap 的节点上运行。你需要禁用 Swap或配置 kubelet 容忍 Swap。临时禁用sudo swapoff -a。永久禁用注释掉/etc/fstab中的 swap 条目。部署方式1.kubeadm (官方推荐生产环境首选)这是 Kubernetes 官方提供的集群部署工具让你能够用几条命令就搭建一个符合最佳实践的集群。它隐藏了复杂的底层细节同时又给予了很大的定制空间是搭建生产集群的黄金标准。优点: 官方工具社区最广配置灵活支持高可用升级路径清晰。缺点: 需要手动安装和配置容器运行时、CNI 网络插件等组件。适用场景: 生产环境、对集群有定制化需求、希望学习 Kubernetes 官方部署逻辑的场景。关键步骤概览:在所有节点安装运行时以 containerd 2.x 为例安装并配置 systemd 作为 cgroup 驱动。在所有节点安装 kubeadm, kubelet, kubectl配置 Kubernetes 的 apt/yum 源 (pkgs.k8s.io) 并安装对应 v1.35 的版本。使用 kubeadm 初始化控制平面在控制平面节点执行kubeadm init。安装 CNI 网络插件如 Calico, Cilium 等使 Pod 之间可以通信。加入工作节点在工作节点执行kubeadm join命令。2.二进制部署 (手动部署用于学习)这种方式需要你从 GitHub 上下载 Kubernetes 各个组件的二进制文件然后手动配置证书、配置文件并用 systemd 等工具将其启动起来。优点: 可以让你深入理解 Kubernetes 各组件的功能和交互方式是学习的绝佳途径。缺点: 操作复杂、容易出错、维护困难不适合生产环境。适用场景: 主要用于深度学习和测试或对系统有极端定制需求且团队有足够能力维护的场景。关键步骤概览:分别为 etcd、kube-apiserver、kube-controller-manager、kube-scheduler、kubelet、kube-proxy 下载二进制文件。手动生成各种 TLS 证书。编写各个组件的 systemd unit 文件配置启动参数。按顺序启动服务 (etcd - API Server - 控制器 - 调度器 - 节点组件)。3.自动化工具 (如 Kubespray, Canonical Kubernetes)利用 Ansible 等自动化工具或发行版提供的封装好的 Kubernetes 发行版可以一键部署集群。优点: 部署速度最快屏蔽了所有复杂细节通常内置了高可用、监控等解决方案。缺点: 灵活性相对较低排查问题需要理解工具本身的逻辑。适用场景: 快速搭建环境、标准化部署、不太关心底层实现细节的场景。代表工具:Kubespray: 基于 Ansible可以部署生产可用的高可用集群支持多种操作系统和网络插件。当前版本已支持部署 Kubernetes 1.33.5。Canonical Kubernetes: Ubuntu 官方提供的 Kubernetes 发行版可通过snap命令快速安装对 v1.35 有专门的优化和支持。2、部署2.1 准备工作三台主机分别修改主机名解析时间同步3台[rootmaster ~]# hostnamectl set-hostname master[rootnode1 ~]# hostnamectl set-hostname node1[rootnode2 ~]# hostnamectl set-hostname node2[rootmaster ~]# more /etc/hosts | grep 192192.168.137.134 master192.168.137.139 node1192.168.137.141 node2[rootmaster ~]# scp /etc/hosts root192.168.137.139:/etc/root192.168.137.139s password:hosts 100% 225 127.4KB/s 00:00[rootmaster ~]# scp /etc/hosts root192.168.137.141:/etc/root192.168.137.141s password:hosts 100% 225 102.8KB/s 00:00或者用chrony同步[rootmaster ~]# ntpdate ntp.aliyun.com关闭防火墙、selinux、swap3台[rootmaster ~]# systemctl stop firewalld[rootmaster ~]# systemctl disable firewalld[rootmaster ~]# sed -i s/^SELINUXenforcing$/SELINUXdisabled/ /etc/selinux/config[rootmaster ~]# setenforce 0setenforce: SELinux is disabled[rootmaster ~]# swapoff -a[rootmaster ~]# sed -i / swap / s/^\(.*\)$/#\1/g /etc/fstab配置内核参数3台启用桥接的IPv4流量传递给iptables并启用cgroup v2Kubernetes v1.35必需。[rootmaster ~]# cat EOF | tee /etc/modules-load.d/k8s.conf overlay br_netfilter EOFoverlaybr_netfilter[rootmaster ~]# cat EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-iptables 1 net.bridge.bridge-nf-call-ip6tables 1 net.ipv4.ip_forward 1 EOFnet.bridge.bridge-nf-call-iptables 1net.bridge.bridge-nf-call-ip6tables 1net.ipv4.ip_forward 1[rootmaster ~]# sysctl --system验证是否是cgroups v2发现不是[rootmaster ~]# stat -fc %T /sys/fs/cgroup/tmpfs龙蜥8.10修改如下若已经是cgroups v2则不需要执行以下操作[rootmaster ~]# grubby --update-kernelALL --argssystemd.unified_cgroup_hierarchy1[rootmaster ~]# reboot[rootmaster ~]# stat -fc %T /sys/fs/cgroup/cgroup2fs[rootnode1 ~]# stat -fc %T /sys/fs/cgroup/cgroup2fs[rootnode2 ~]# stat -fc %T /sys/fs/cgroup/cgroup2fs2.2 安装容器三台Kubernetes v1.35已不再支持dockershimcontainerd是官方首选的CRI运行时。根据搜索结果需要安装containerd v2.0安装yum-utils和dnf-utils[rootmaster ~]# yum install -y yum-utils device-mapper-persistent-data lvm2添加源[rootmaster ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装containerd[rootmaster ~]# yum install -y containerd.io配置加速[rootmaster ~]# sed -i s#registry.k8s.io#registry.cn-hangzhou.aliyuncs.com/google_containers#g /etc/containerd/config.toml确保使用cgroups若非true执行下面的sed或者手动修改[rootmaster ~]# more /etc/containerd/config.toml | grep SystemdCgroupSystemdCgroup true[rootmaster ~]# sed -i s/SystemdCgroup false/SystemdCgroup true/g /etc/containerd/config.toml启动容器并设置开机自启[rootmaster ~]# systemctl restart containerd[rootmaster ~]# systemctl enable containerd2.3 使用kubeadm部署集群安装 kubeadm, kubelet, kubectl三台在所有节点上安装Kubernetes核心组件。写入k8s官方源[rootmaster ~]# cat EOF | tee /etc/yum.repos.d/kubernetes.repo [kubernetes] nameKubernetes baseurlhttps://pkgs.k8s.io/core:/stable:/v1.35/rpm/ enabled1 gpgcheck1 gpgkeyhttps://pkgs.k8s.io/core:/stable:/v1.35/rpm/repodata/repomd.xml.key excludekubelet kubeadm kubectl EOF[kubernetes]nameKubernetesbaseurlhttps://pkgs.k8s.io/core:/stable:/v1.35/rpm/enabled1gpgcheck1gpgkeyhttps://pkgs.k8s.io/core:/stable:/v1.35/rpm/repodata/repomd.xml.keyexcludekubelet kubeadm kubectl建立缓存[rootmaster ~]# yum clean all yum makecache安装最新v1.35版本的kubeadm, kubelet, kubectl[rootmaster ~]# yum install -y kubelet kubeadm kubectl --disableexcludeskubernetes设置开机自启[rootmaster ~]# systemctl enable --now kubelet版本验证[rootmaster ~]# kubelet --versionKubernetes v1.35.3[rootmaster ~]# kubectl version --clientClient Version: v1.35.3Kustomize Version: v5.7.1[rootmaster ~]# kubeadm versionkubeadm version: version.Info{Major:1, Minor:35, EmulationMajor:, EmulationMinor:, MinCompatibilityMajor:, MinCompatibilityMinor:, GitVersion:v1.35.3, GitCommit:6c1cd99aef09161ddb07b8ade6c9564e9b9bfe27, GitTreeState:clean, BuildDate:2026-03-18T18:32:11Z, GoVersion:go1.25.7, Compiler:gc, Platform:linux/amd64}2.4 初始化master在Master节点192.168.137.136上执行初始化。这里我们指定Pod的网段为10.244.0.0/16Flannel默认并设置apiserver-advertise-address为本机IP。[rootmaster ~]# kubeadm init \ --apiserver-advertise-address192.168.137.136 \ --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \ --kubernetes-version v1.35.0 \ --pod-network-cidr10.244.0.0/16参数说明--apiserver-advertise-address: 指定API Server监听的地址即Master的内网IP。--image-repository: 指定从国内镜像仓库拉取Kubernetes组件镜像加速部署。--kubernetes-version: 指定版本如果不指定将默认安装最新版。--pod-network-cidr: Pod网络的CIDR后续CNI网络插件会用到。得到kubeadm join保存好后续join需要Then you can join any number of worker nodes by running the following on each as root:kubeadm join 192.168.137.136:6443 --token lv0vwp.5hrn3zd5tdcnkccn \--discovery-token-ca-cert-hash sha256:be73b9348fbd90660c300edc86cebdad5fcd9367e2c2cabe57a56d826b98b7f7在Master上配置kubectl访问凭证[rootmaster ~]# mkdir -p $HOME/.kube[rootmaster ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config[rootmaster ~]# chown $(id -u):$(id -g) $HOME/.kube/config在Master节点执行为集群安装CNI网络插件 (Flannel)使Pod间能够通信[rootmaster ~]# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlnamespace/kube-flannel createdclusterrole.rbac.authorization.k8s.io/flannel createdclusterrolebinding.rbac.authorization.k8s.io/flannel createdserviceaccount/flannel createdconfigmap/kube-flannel-cfg createddaemonset.apps/kube-flannel-ds created等待Flannel Pod启动完成[rootmaster ~]# kubectl get pods -n kube-system -w[rootmaster ~]# kubectl get pods -n kube-system -wNAME READY STATUS RESTARTS AGEcoredns-764897d7b-98249 0/1 Pending 0 5m10scoredns-764897d7b-wxxrv 0/1 Pending 0 5m10setcd-master 1/1 Running 0 5m15skube-apiserver-master 1/1 Running 0 5m15skube-controller-manager-master 1/1 Running 0 5m15skube-proxy-rjfm7 1/1 Running 0 5m11skube-scheduler-master 1/1 Running 0 5m15sMaster节点已经成功初始化核心组件etcd、api-server等都在正常运行。coredns处于Pending状态是完全正常的因为还没有安装CNI网络插件等加入Node并安装网络插件后它就会自动运行。2.5 node加入node执行使用上面的kubeadm join的命令加入集群[rootnode1 ~]# kubeadm join 192.168.137.136:6443 --token lv0vwp.5hrn3zd5tdcnkccn \ --discovery-token-ca-cert-hash sha256:be73b9348fbd90660c300edc86cebdad5fcd9367e2c2cabe57a56d826b98b7f7[preflight] Running pre-flight checks[preflight] Some fatal errors occurred:[ERROR CRI]: could not connect to the container runtime: failed to create new CRI runtime service: validate service connection: validate CRI v1 runtime API for endpoint unix:///var/run/containerd/containerd.sock: rpc error: code Unimplemented desc unknown service runtime.v1.RuntimeService[ERROR ContainerRuntimeVersion]: could not connect to the container runtime: failed to create new CRI runtime service: validate service connection: validate CRI v1 runtime API for endpoint unix:///var/run/containerd/containerd.sock: rpc error: code Unimplemented desc unknown service runtime.v1.RuntimeService[preflight] If you know what you are doing, you can make a check non-fatal with --ignore-preflight-errors...error: error execution phase preflight: preflight checks failedTo see the stack trace of this error execute with --v5 or higher这个报错是node1 节点的 containerd 没配置好 CRI 接口问题若报上面的错执行下面的备份旧配置[rootnode1 ~]# cp /etc/containerd/config.toml /etc/containerd/config.toml.bak生成 containerd 标准配置自动开启 CRI[rootnode1 ~]# containerd config default /etc/containerd/config.toml启用 systemd cgroupK8s v1.35 强制要求[rootnode1 ~]# sed -i s/SystemdCgroup false/SystemdCgroup true/g /etc/containerd/config.toml重启容器[rootnode1 ~]# systemctl daemon-reload[rootnode1 ~]# systemctl restart containerd然后再加入[rootnode1 ~]# kubeadm join 192.168.137.136:6443 --token lv0vwp.5hrn3zd5tdcnkccn --discovery-token-ca-cert-hash sha256:be73b9348fbd90660c300edc86cebdad5fcd9367e2c2cabe57a56d826b98b7f7[preflight] Running pre-flight checks[WARNING ContainerRuntimeVersion]: You must update your container runtime to a version that supports the CRI method RuntimeConfig. Falling back to using cgroupDriver from kubelet config will be removed in 1.36. For more information, see https://git.k8s.io/enhancements/keps/sig-node/4033-group-driver-detection-over-cri[preflight] Reading configuration from the kubeadm-config ConfigMap in namespace kube-system...[preflight] Use kubeadm init phase upload-config kubeadm --config your-config-file to re-upload it.[kubelet-start] Writing kubelet configuration to file /var/lib/kubelet/instance-config.yaml[patches] Applied patch of type application/strategic-merge-patchjson to target kubeletconfiguration[kubelet-start] Writing kubelet configuration to file /var/lib/kubelet/config.yaml[kubelet-start] Writing kubelet environment file with flags to file /var/lib/kubelet/kubeadm-flags.env[kubelet-start] Starting the kubelet[kubelet-check] Waiting for a healthy kubelet at http://127.0.0.1:10248/healthz. This can take up to 4m0s[kubelet-check] The kubelet is healthy after 502.319611ms[kubelet-start] Waiting for the kubelet to perform the TLS BootstrapThis node has joined the cluster:* Certificate signing request was sent to apiserver and a response was received.* The Kubelet was informed of the new secure connection details.Run kubectl get nodes on the control-plane to see this node join the cluster.问题若token过期在master执行重新生成[rootmaster ~]# kubeadm token create --print-join-command2.5 查看查看节点状态等待所有节点变为Ready[rootmaster ~]# kubectl get nodesNAME STATUS ROLES AGE VERSIONmaster Ready control-plane 15m v1.35.3node1 NotReady none 5m57s v1.35.3node2 NotReady none 3m13s v1.35.3查看所有命名空间的Pod确认所有核心组件和网络插件Pod正常运行[rootmaster ~]# kubectl get pods --all-namespacesNAMESPACE NAME READY STATUS RESTARTS AGEkube-flannel kube-flannel-ds-8wczw 0/1 Init:0/2 0 2m55skube-flannel kube-flannel-ds-sb29j 1/1 Running 0 11mkube-flannel kube-flannel-ds-ws7fd 0/1 Init:0/2 0 5m39skube-system coredns-764897d7b-98249 1/1 Running 0 14mkube-system coredns-764897d7b-wxxrv 1/1 Running 0 14mkube-system etcd-master 1/1 Running 0 14mkube-system kube-apiserver-master 1/1 Running 0 14mkube-system kube-controller-manager-master 1/1 Running 0 14mkube-system kube-proxy-9vnxf 0/1 ContainerCreating 0 2m55skube-system kube-proxy-pz2xt 0/1 ContainerCreating 0 5m39skube-system kube-proxy-rjfm7 1/1 Running 0 14mkube-system kube-scheduler-master 1/1 Running 0 14m当所有节点状态为Ready并且kube-system命名空间下的核心Pod如coredns都处于Running状态时。集群部署成功若和我一样卡住去两个node节点看容器状态发现是网络问题未配置加速[rootnode1 ~]# sed -i s#registry.k8s.io#registry.cn-hangzhou.aliyuncs.com/google_containers#g /etc/containerd/config.toml[rootnode1 ~]# sed -i s#sandbox_image registry.k8s.io/pause.*#sandbox_image registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.10#g /etc/containerd/config.toml[rootnode1 ~]# systemctl daemon-reload[rootnode1 ~]# systemctl restart containerd[rootnode1 ~]# systemctl restart kubelet配置完成后等待拉取完成如下[rootmaster ~]# kubectl get nodesNAME STATUS ROLES AGE VERSIONmaster Ready control-plane 27m v1.35.3node1 Ready none 18m v1.35.3node2 Ready none 15m v1.35.3[rootmaster ~]# kubectl get pods --all-namespaces -wNAMESPACE NAME READY STATUS RESTARTS AGEkube-flannel kube-flannel-ds-5kr6d 1/1 Running 0 14skube-flannel kube-flannel-ds-8kl8g 1/1 Running 0 14skube-flannel kube-flannel-ds-ct8x6 1/1 Running 0 14skube-system coredns-764897d7b-98249 1/1 Running 0 27mkube-system coredns-764897d7b-wxxrv 1/1 Running 0 27mkube-system etcd-master 1/1 Running 0 27mkube-system kube-apiserver-master 1/1 Running 0 27mkube-system kube-controller-manager-master 1/1 Running 0 27mkube-system kube-proxy-9vnxf 1/1 Running 0 15mkube-system kube-proxy-pz2xt 1/1 Running 0 18mkube-system kube-proxy-rjfm7 1/1 Running 0 27mkube-system kube-scheduler-master 1/1 Running 0 27m集群部署成功3、验证简单验证# 1. 查看所有节点状态应该都是Ready[rootmaster ~]# kubectl get nodes# 2. 查看所有系统组件Pod状态应该都是Running[rootmaster ~]# kubectl get pods -n kube-system# 3. 查看集群信息[rootmaster ~]# kubectl cluster-info部署nginx验证[rootmaster ~]# kubectl create deployment nginx-test --imagenginx --replicas2或者下面的命令[rootmaster ~]# kubectl create deployment nginx-test --imagedocker.registry.k8s.com/library/nginx --replicas21. kubectl K8s 的命令行工具用来给集群发指令。2. create 创建一个资源。3. deployment 创建一种叫 “部署” 的 K8s 资源作用管理一组 Pod保证它们永远正常运行。4. nginx-test 给这个 deployment 起的名字随便起。5. --imagenginx 告诉 K8s我要运行的容器镜像 nginxK8s 会自动去拉取官方最新版 Nginx 镜像。6. --replicas2 副本数 2意思是我要同时启动 2 个完全一样的 Nginx 容器查看Pod创建状态等待变成Running[rootmaster ~]# kubectl get podsNAME READY STATUS RESTARTS AGEnginx-test-6ff8854996-h8ct2 1/1 Running 0 4snginx-test-6ff8854996-sss5x 1/1 Running 0 4s查看pods分布的节点[rootmaster ~]# kubectl get pods -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATESnginx-test-6ff8854996-h8ct2 1/1 Running 0 29s 10.244.2.7 node2 none nonenginx-test-6ff8854996-sss5x 1/1 Running 0 29s 10.244.1.6 node1 none none查看部署详情[rootmaster ~]# kubectl get deploymentNAME READY UP-TO-DATE AVAILABLE AGEnginx-test 2/2 2 2 93s[rootmaster ~]# kubectl get replicasetNAME DESIRED CURRENT READY AGEnginx-test-6ff8854996 2 2 2 2m5s暴露这个部署为服务创建Service[rootmaster ~]# kubectl expose deployment nginx-test --port80 --typeNodePortservice/nginx-test exposed查看服务信息找到暴露的端口[rootmaster ~]# kubectl get svc nginx-testNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEnginx-test NodePort 10.107.173.53 none 80:30503/TCP 38s测试访问任意节点都可[rootmaster ~]# curl 192.168.137.136:30503[rootmaster ~]# echo $?0[rootnode1 ~]# curl 192.168.137.136:30503[rootnode1 ~]# echo $?0[rootnode2 ~]# curl 192.168.137.136:30503[rootnode2 ~]# echo $?0访问正常4、Dashboard非必须)Kubernetes Dashboard是 Kubernetes 官方提供的Web 可视化管理界面用于通过图形化方式管理集群资源、监控应用状态与排查问题。重要提示截至 2026 年该项目已被官方归档、不再维护官方推荐使用Headlamp作为替代。4.1 部署headlampmaster安装helm[rootmaster ~]# helm versionversion.BuildInfo{Version:v3.20.1, GitCommit:a2369ca71c0ef633bf6e4fccd66d634eb379b371, GitTreeState:clean, GoVersion:go1.25.8}[rootmaster ~]# curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3[rootmaster ~]# chmod 700 get_helm.sh[rootmaster ~]# ./get_helm.sh添加 Headlamp 的 Helm 仓库[rootmaster ~]# helm repo add headlamp https://kubernetes-sigs.github.io/headlamp/在 headlamp 命名空间中安装 Headlamp[rootmaster ~]# helm install my-headlamp headlamp/headlamp --namespace headlamp --create-namespace这个命令会创建一个名为headlamp的命名空间并在其中部署 Headlamp 的相关 Pod 和服务4.2 创建访问 ServiceAccount 和 ClusterRoleBindingHeadlamp 需要知道以谁的身份来访问集群。我们可以创建一个管理员级别的 ServiceAccount 来获得完整视图仅供初始管理和学习使用生产环境请遵循最小权限原则。创建 ServiceAccount 和对应的 ClusterRoleBinding[rootmaster ~]# cat EOF | kubectl apply -f - apiVersion: v1 kind: ServiceAccount metadata: name: headlamp-admin namespace: headlamp --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: headlamp-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: headlamp-admin namespace: headlamp EOF为上面创建的用户生成一个长期有效的 Token用于登录 Headlamp[rootmaster ~]# kubectl -n headlamp create token headlamp-admin --duration8760h复制并保存命令输出的一长串字符串这就是你的登录密码。4.3 访问为了让外部能够访问 Headlamp 服务我们将其 Service 类型改为NodePort[rootmaster ~]# kubectl patch svc my-headlamp -n headlamp -p {spec:{type:NodePort}}查看分配端口[rootmaster ~]# kubectl get svc -n headlamp my-headlampNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEmy-headlamp NodePort 10.103.12.86 none 80:30485/TCP 3m29s现在你就可以在浏览器中通过https://任意节点IP:3xxxx访问 Headlamp 了。若安装指定版本[rootmaster ~]# helm uninstall my-headlamp -n headlamprelease my-headlamp uninstalled[rootmaster ~]# kubectl delete namespace headlampnamespace headlamp deleted[rootmaster ~]# helm search repo headlamp/headlamp --versionsNAME CHART VERSION APP VERSION DESCRIPTIONheadlamp/headlamp 0.40.1 0.40.1 Headlamp is an easy-to-use and extensible Kuber...headlamp/headlamp 0.40.0 0.40.0 Headlamp is an easy-to-use and extensible Kuber...headlamp/headlamp 0.39.0 0.39.0 Headlamp is an easy-to-use and extensible Kuber...[rootmaster ~]# helm install my-headlamp headlamp/headlamp \ --namespace headlamp \ --create-namespace \ --version 0.40.0 \ 这里替换你要安装的版本 --set service.typeNodePort \ --set service.nodePort30485等待变为running[rootmaster ~]# kubectl get pods -n headlamp -w[rootmaster ~]# kubectl get svc -n headlamp然后测试访问查看pod详情[rootmaster ~]# kubectl describe pod -n headlamp my-headlamp-86cbcd4f87-988zm | grep -A 5 Events填入令牌token

相关新闻