k8s集群替换节点名称

修改主节点主机名

(1)导出需要修改节点的配置文件

kubectl get node master0 -o yaml > master0.yml

(2)修改导出的配置文件

sed -i "s/master0/master1/" master1.yml

(3)修改主机名

hostnamectl set-hostname master1

(4)删除etcd中节点记录

获取所有key

etcdctl --endpoints=https://localhost:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key get /registry/minions  --prefix --keys-only

删除对应节点在etcd中信息

etcdctl --endpoints=https://localhost:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key del /registry/minions/master0

(5)部署之前导出的节点

kubectl apply -f master1.yml

(6)重新生成kubelet配置

kubeadm init phase kubeconfig kubelet --kubernetes-version v1.23.5 --control-plane-endpoint "*.*.*.*:6443"

注:若存在配置 需要将原来的配置文件备份或删除
(7)重启节点的kubelet

systemctl restart kubelet.service

修改工作节点主机名

(1)驱逐待修改节点上的pod

kubectl drain slave1 --delete-local-data --ignore-daemonsets

(2)修改节点主机名

hostnamectl set-hostname slave2

(3)在集群主节点上执行删除节点操作

kubectl delete nodes slave1

(4)在删除的节点上执行

kubeadm reset

(5)在主节点上执行

kubeadm token create --print-join-command

(6)在删除的节点上执行 第四步生成的结果

kubeadm join *.*.*.*:6443 --token d30ddj.re2g93vub7twlf76 --discovery-token-ca-cert-hash sha256:77a90d9a1c74f2743621769110fcc7646aa3d09c03a36b8bfc2b916dc38b8b67

(7)主节点获取节点状态

kubectl get node -owide
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes,也称为K8s,是一个开放源代码系统,用于跨多个主机管理容器化的应用程序。 Kubernetes 是用于自动部署,扩展和管理容器化应用程序的开源系统。 它将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。Kubernetes 源自Google 15 年生产环境的运维经验,同时凝聚了社区的最佳创意和实践。 Kubernetes 是一个开源的容器编排引擎,用来对容器化应用进行自动化部署、 扩缩和管理。该项目托管在 CNCF。 Kubernetes 特性: 自动化上线和回滚 Kubernetes 会分步骤地将针对应用或其配置的更改上线,同时监视应用程序运行状况以确保你不会同时终止所有实例。如果出现问题,Kubernetes 会为你回滚所作更改。你应该充分利用不断成长的部署方案生态系统。 服务发现与负载均衡 无需修改你的应用程序即可使用陌生的服务发现机制。Kubernetes 为容器提供了自己的 IP 地址和一个 DNS 名称,并且可以在它们之间实现负载均衡。 服务拓扑(Service Topology) 基于集群拓扑的服务流量路由。 存储编排 自动挂载所选存储系统,包括本地存储、诸如 GCP 或 AWS 之类公有云提供商所提供的存储或者诸如 NFS、iSCSI、Gluster、Ceph、Cinder 或 Flocker 这类网络存储系统。 Secret 和配置管理 部署和更新 Secrets 和应用程序的配置而不必重新构建容器镜像,且 不必将软件堆栈配置中的秘密信息暴露出来。 自动装箱 根据资源需求和其他约束自动放置容器,同时避免影响可用性。将关键性工作负载和尽力而为性质的服务工作负载进行混合放置,以提高资源利用率并节省更多资源。 批量执行 除了服务之外,Kubernetes 还可以管理你的批处理和 CI 工作负载,在期望时替换掉失效的容器。 IPv4/IPv6 双协议栈 为 Pod 和 Service 分配 IPv4 和 IPv6 地址 水平扩缩 使用一个简单的命令、一个 UI 或基于 CPU 使用情况自动对应用程序进行扩缩。 自我修复 重新启动失败的容器,在节点死亡时替换并重新调度容器,杀死不响应用户定义的健康检查的容器,并且在它们准备好服务之前不会将它们公布给客户端。
要在CentOS 7上配置Kubernetes GPU节点,你需要完成以下步骤: 1. 安装Nvidia显卡驱动:按照之前的回答中提到的步骤,在CentOS 7上安装并配置Nvidia显卡驱动。 2. 安装DockerKubernetes通常使用Docker作为容器运行时。你可以按照Docker官方文档的说明,在CentOS 7上安装Docker。 3. 在Kubernetes Master节点上安装NVIDIA Device Plugin:在Master节点上运行以下命令来安装NVIDIA Device Plugin: ``` kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.9.0/nvidia-device-plugin.yml ``` 4. 在GPU节点上设置标签:在每个拥有GPU的节点上,使用以下命令来添加`nvidia.com/gpu`标签: ``` kubectl label nodes <your-node-name> nvidia.com/gpu=true ``` 将`<your-node-name>`替换为实际的节点名称。 5. 部署GPU应用程序:现在你可以在Kubernetes中部署使用GPU的应用程序了。通过创建一个Pod配置文件,指定需要使用GPU的容器,并在其中添加相应的资源限制和设备映射。例如,你可以创建一个名为`gpu-pod.yaml`的文件,内容如下: ``` apiVersion: v1 kind: Pod metadata: name: gpu-pod spec: containers: - name: gpu-container image: <your-gpu-image> resources: limits: nvidia.com/gpu: 1 ``` 将`<your-gpu-image>`替换为实际的GPU应用程序镜像。 6. 在节点上部署Pod:使用以下命令在GPU节点上部署Pod: ``` kubectl create -f gpu-pod.yaml ``` 7. 验证GPU节点:运行以下命令来验证GPU节点是否正常工作: ``` kubectl get nodes -o wide ``` 你应该能够看到节点的`nvidia.com/gpu`标签为`true`。 通过以上步骤,你应该能够在CentOS 7上成功配置Kubernetes GPU节点,并在其中部署使用GPU的应用程序。请注意,这些步骤假定你已经正确安装和配置了Kubernetes集群

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值