k8s高级功能(系统升级)

版本升级

k8s由于1.23 到1.24底层变了,所以本次示例以1.22升到1.23

升级Master节点 (在master节点执行)

腾空节点

复制代码
kubectl drain master --ignore-daemonsets

升级kubeadm

复制代码
yum install -y kubelet-1.23.17 kubeadm-1.23.17 kubectl-1.23.17

#重启服务
sudo systemctl daemon-reload
sudo systemctl restart kubelet

验证升级计划

复制代码
kubeadm upgrade plan

下图为升级的版本核验,最下面的是他提供的命令,如果确定无误升级,复制粘贴执行即可

升级节点

复制代码
kubeadm upgrade apply v1.23.17

解除节点保护

复制代码
kubectl uncordon master

升级Node节点

腾空节点(在master节点执行)

复制代码
kubectl drain node1 --ignore-daemonsets

升级kubeadm(在node1节点升级)

复制代码
yum install -y kubelet-1.23.17 kubeadm-1.23.17 kubectl-1.23.17
sudo systemctl daemon-reload
sudo systemctl restart kubelet

升级节点(在node节点操作)

复制代码
kubeadm upgrade node

回到master节点解除保护

复制代码
kubectl uncordon node1

另一个node节点也是类似操作

更新证书

Kubernetes集群的ca证书默认是10年,其他证书的有效期是1年,当证书过期以后集群无法正常执行命令,所以需要更新证书。证书更新分为自动更新和手动更新,当集群升级的时候,证书会自动更新。这里我们主要说的是手动更新。

查看证书何时过期

复制代码
kubeadm certs check-expiration

更新证书

复制代码
#防止意外,备份一份证书
cp -r /etc/kubernetes /etc/kubernetes.old

#开始更新证书
kubeadm certs renew all

更新 ~/.kube/config 文件

复制代码
mv ~/.kube/config ~/.kube/config.old
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
sudo chmod 644 $HOME/.kube/config

重启相关服务

复制代码
docker ps | grep -v pause | grep -E "etcd|scheduler|controller|apiserver" | awk '{print $1}' | awk '{print "docker","restart",$1}' | bash





kubeadm certs check-expiration

Kuboard部署(可视化页面管理)

在所有节点上传文件kuboard-v3.yaml,与镜像包kuboard-v3-images.tar.gz

复制代码
#加载镜像
docker load < kuboard-v3-images.tar.gz


kubectl apply -f kuboard-v3.yaml
kubectl get pods -n kuboard

部署Kuboard

修改镜像拉取策略

复制代码
sed -i 's/          imagePullPolicy: Always/          imagePullPolicy: IfNotPresent/g' kuboard-v3.yaml

修改拉取策略

复制代码
# 执行该命令 ,/imagePullPolicy 搜索 修改 imagePullPolicy 值为IfNotPresent
kubectl edit deployment -n kuboard kuboard-agent 

修改拉取策略

复制代码
kubectl edit deployment -n kuboard kuboard-agent-2
复制代码
# 部署
kubectl apply -f kuboard-v3.yaml

# 查看dashboard的状态
kubectl get pods -n kuboard

# 查看dashboard前端的service
kubectl get svc -n kuboard

[root@master ~]# kubectl get svc -n kuboard
NAME         TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)                                        AGE
kuboard-v3   NodePort   10.1.236.103   <none>        80:30080/TCP,10081:30081/TCP,10081:30081/UDP   4m42s

访问

浏览器访问++++h++++ ++++ttps://<Kubernetes++++集群任意节点的IP>:30080

用户名: admin

密码: Kuboard123

    1. 操作集群

    1. 自由探索

可以在里面创建Pod或者Deployment等等之类的资源

以下是一个创建Deployment的流程

这里面提供了yaml文件我们可以复制出来,也可以直接点击应用部署

部署好以后,也可以去Kubernetes集群里面使用命令查看到刚才部署的

复制代码
[root@master ~]# kubectl get deployment
NAME         READY   UP-TO-DATE   AVAILABLE   AGE
test-nginx   1/1     1            1           86s
[root@master ~]# kubectl get pod
NAME                         READY   STATUS    RESTARTS   AGE
test-nginx-bd5d678d5-p29pz   1/1     Running   0          89s

RBAC授权

k8s安全管理:认证、授权、准入控制概述

Role 和 ClusterRole

RoleBinding 和 ClusterRoleBinding

相关推荐
SelectDB9 小时前
开源替代怎么选:能力对照、三条部署路径与四类边界速查
数据库·云原生·开源
SelectDB9 小时前
自建与托管怎么选:开源自建、私有化与云上托管三条路径速查
数据库·云原生·开源
fengkai454510 小时前
3、Kubernetes的Namespace&Contexts&Pod&YAML格式
运维·容器·kubernetes·k8s·namespace·yaml·pod
SatanII11 小时前
K8s 存储与配置管理|Volume、ConfigMap、Secret 核心笔记
笔记·rpc·kubernetes
容器魔方11 小时前
Volcano v1.16 发布:新增 NamespaceQueue 与 fairshare,拓展 HyperNode 生态
人工智能·云原生·容器·华为云·云计算
秦jh_12 小时前
【Docker】镜像、卷原理
运维·docker·容器
小马同学-12 小时前
K8s 命名空间与上下文:Namespace 资源隔离与多集群切换实战
云原生·容器·kubernetes
阿里云云原生12 小时前
Agent 自进化的数据底座:阿里云 SLS Session Store
云原生
I'mChloe13 小时前
飞牛NAS部署flatnotes实战:Docker、8080端口、Markdown笔记与固定地址访问
笔记·docker·容器
川石课堂软件测试13 小时前
涨薪技术|0到1学会性能测试第9课-HTTP响应统计
数据库·功能测试·网络协议·http·kubernetes·单元测试·测试用例