K8S托管Rancher集群

当RancherUI不可用时,可以通过备份kubeconfig文件,安装kubectl工具来继续对k8s集群进行操作,如部署、更新服务。主要步骤包括备份kubeconfig,配置kubernetes源,安装kubectl,使用kubectl与集群交互,更新或部署服务。
摘要由CSDN通过智能技术生成

背景

Rancher可能会出现某些问题导致UI界面无法访问,就没有办法部署或者更新服务。在这种情况下,我们使用集群的kubeconfig文件,借助k8s托管这个集群,即使UI界面无法访问,我们也能进行部署服务、重启服务等操作。

1、备份集群的kubeconfig文件(重要)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-38enrYmL-1684412304437)(null)]

点击kubeconfig文件,可以复制出来保存。

注:一定要在Rancher UI正常访问的时候备份,不然U崩溃时就无法备份了。

2、安装命令行工具

2.1、kubernetes源配置

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

2.2 安装kubelet、kubectl

yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
systemctl enable kubelet

2.3 将需要操作的集群文件放到指定目录下
2.3.1 创建目录

mkdir -p $HOME/.kube

2.3.2 移动文件

这里的/tmp/admin.conf文件是上面备份的集群的kubeconfig文件

sudo cp -i /tmp/admin.conf $HOME/.kube/config

2.4 登录虚拟机,启动 kubectl,用它与 kubernetes 集群进行交互

使用 --kubeconfig 标记来指定它,如下所示:

kubectl --kubeconfig $HOME/.kube/config get pods

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yJkze0OI-1684412304584)(null)]

3、更新服务

3.1 查看当前集群中的Pod的名称空间
查看某个pod名称、名称空间和运行节点

kubectl get pod -A -o yaml |grep '^    n'|grep -v nodeSelector

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ACHt6vWz-1684412304491)(null)]

通过Pod对应的Deployment查看名称空间

kubectl get deployment -A

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C1lZASek-1684412304677)(null)]

以上方式二选其一。

3.2 查看一个名称空间下的Deployment

kubectl --kubeconfig $HOME/.kube/config get deployment -n default

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-naU5f5I8-1684412304527)(null)]

3.3 将这个Deploymentyaml文件保存下来

kubectl --kubeconfig $HOME/.kube/config get deployment mysql-5-7-34-binlog  -n default -o yaml >> mysql.yaml

3.4 修改yaml文件,更新服务,比如我们更换服务使用的镜像版本

修改图中所示的内容:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1hGh0kRA-1684412304606)(null)]

下图所示内容需要删除:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s2bHOjGy-1684412304391)(null)]

3.5 执行下面的命令更新服务

kubectl apply -f mysql.yaml

结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J1m7qRYH-1684412304357)(null)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d3NMZIu6-1684412304508)(null)]

问题:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nfLf2L9i-1684412304660)(null)]

出现这种问题是配置文件是带有时间戳的,需要使用最新的yaml文件重新执行命令。

4、部署服务

4.1 准备部署服务所需的yaml文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NeKRjb7X-1684412304416)(null)]

4.2 执行命令部署服务

kubectl apply -f base.yaml

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iZ71aWdw-1684412304559)(null)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PHR4mRtV-1684412304719)(null)]

5、常用命令

5.1 获取当前集群中所有的Pod

kubectl --kubeconfig $HOME/.kube/config get pods

5.2 查询Pod的名称空间
查看某个pod名称、名称空间和运行节点

kubectl get pod -A -o yaml |grep '^    n'|grep -v nodeSelector

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b3wAHcxR-1684412304637)(null)]

5.3 通过Pod对应的Deployment查看名称空间

kubectl get deployment -A

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z2vVLt1X-1684412304461)(null)]

5.4 获取当前集群中所有的Services

kubectl --kubeconfig $HOME/.kube/config get svc

5.5 获取名称空间mysql-clz中所有的Pod

kubectl --kubeconfig $HOME/.kube/config get pods -n mysql-clz

5.6 查看Pod的描述信息

kubectl --kubeconfig $HOME/.kube/config describe pod mysql-clz-78b8cf6-nlwn6 -n mysql-clz

5.6 查看Podyaml文件

kubectl --kubeconfig $HOME/.kube/config get deployment mysql-clz-78b8cf6-nlwn6 -n mysql-clz -o yaml
kubectl --kubeconfig $HOME/.kube/config get  mysql-clz-78b8cf6-nlwn6 -o yaml

5.8 查看名称空间mysql-clz中的Deployment

kubectl --kubeconfig $HOME/.kube/config get deployment -n mysql-clz

5.9 查看Deploymentyaml文件

kubectl --kubeconfig $HOME/.kube/config get deployment mysql-clz -n mysql-clz -o yaml

5.10 使用yaml文件部署服务

kubectl --kubeconfig $HOME/.kube/config apply -f base.yaml
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值