首页 > 其他分享 >5.交互式测试客户端及滚动更新、回滚、pod扩缩容

5.交互式测试客户端及滚动更新、回滚、pod扩缩容

时间:2023-07-30 17:04:25浏览次数:37  
标签:kubectl 回滚 master01 扩缩容 demoapp wordpress mysql pod root

创建一个专用的交互式测试客户端:
拉取镜像
kubectl run client-$RANDOM --image=ikubernetes/admin-box:v1.2 --restart=Never -it --rm --command -- /bin/bash
root@client-12383 /# 

在默认名称空间下的服务去访问另一个名称空间下的服务
查看另一个名称空间
[root@K8s-master01 ~]#kubectl get svc -n demo
NAME        TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
demoapp     NodePort    10.102.165.71   <none>        8080:31248/TCP   178m

进行访问:
root@client-12383 /# curl 10.102.165.71:8080
iKubernetes demoapp v1.0 !! ClientIP: 10.244.3.9, ServerName: demoapp-55c5f88dcb-t7xzh, ServerIP: 10.244.4.6!
root@client-12383 /# curl 10.102.165.71:8080
iKubernetes demoapp v1.0 !! ClientIP: 10.244.3.9, ServerName: demoapp-55c5f88dcb-tqb5j, ServerIP: 10.244.5.6!

不在同一名称空间访问要加上名称空间的名字
root@client-12383 /# curl demoapp.demo:8080  (如果端口是80  后面就不用带端口号)
iKubernetes demoapp v1.0 !! ClientIP: 10.244.3.9, ServerName: demoapp-55c5f88dcb-t7xzh, ServerIP: 10.244.4.6!

持续访问命令
root@client-12383 /# while true; do curl demoapp.demo:8080; .5; done

查看pod的详细信息
[root@K8s-master01 ~]#kubectl get pods -n demo
NAME                         READY   STATUS    RESTARTS   AGE
demoapp-55c5f88dcb-t7xzh     1/1     Running   0          3h14m
demoapp-55c5f88dcb-tqb5j     1/1     Running   0          3h14m
mysql-787575d954-cdp4x       1/1     Running   0          3h35m
wordpress-6c854887c8-mwp74   1/1     Running   0          172m

[root@K8s-master01 ~]#kubectl get pods demoapp-55c5f88dcb-t7xzh -n demo -o yaml
镜像升级,不影响服务对外使用(滚动更新机制)
[root@K8s-master01 ~]#kubectl set image deployment demoapp demoapp=ikubernetes/demoapp:v1.1 -n demo
deployment.apps/demoapp image updated

持续访问命令
root@client-12383 /# while true; do curl demoapp.demo:8080; .5; done
由1.0逐渐升级为1.1
应用更新历史
[root@K8s-master01 ~]#kubectl rollout history deploy demoapp -n demo
deployment.apps/demoapp 
REVISION  CHANGE-CAUSE
1         <none>     
2         <none>
回滚应用的更新
[root@K8s-master01 ~]#kubectl rollout undo deployment demoapp -n demo
deployment.apps/demoapp rolled back

持续访问命令
root@client-12383 /# while true; do curl demoapp.demo:8080; .5; done
由1.1逐渐升级为1.0
pod手动扩容或缩容
手动扩容或缩容:
kubectl scale <TYPE>/<NAME> --replicas=<NUM> [-n <NAMESPACE>]
只支持这四种类型
<TYPE> Set a new size for a deployment, replica set, replication controller, or stateful set.
如:kubectl scale deployments/demoapp --replicas=6 -n demo  (扩容)
kubectl scale deployments/demoapp --replicas=4 -n demo  (缩容,不能指定缩哪个)

持续访问命令查看扩容缩容
root@client-12383 /# while true; do curl demoapp.demo:8080; .5; done
使用声明式配置文件-f直接指定目录,会自动把目录下的所有清单文件进行创建
拉取镜像
[root@K8s-master01 tmp]#git clone https://github.com/iKubernetes/learning-k8s.git

[root@K8s-master01 wordpress]#kubectl apply -f mysql-ephemeral/
secret/mysql-user-pass configured
service/mysql unchanged
deployment.apps/mysql configured
没有指定名称空间,就直接配部署在default名称空间下
[root@K8s-master01 wordpress]#kubectl get pods
mysql-787575d954-2l8ns   1/1     Running   0             100s

MySQL的service也被创建出来了 
[root@K8s-master01 wordpress]#kubectl get svc
mysql        ClusterIP   10.98.211.241   <none>        3306/TCP       120s

[root@K8s-master01 wordpress]#kubectl apply -f wordpress-apache-ephemeral/
service/wordpress created
deployment.apps/wordpress created

[root@K8s-master01 wordpress]#kubectl get svc
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        2d11h
mysql        ClusterIP   10.98.211.241   <none>        3306/TCP       2d8h
nginx        NodePort    10.99.87.93     <none>        80:31640/TCP   2d10h
wordpress    NodePort    10.99.203.255   <none>        80:32671/TCP   4m22s

进行访问
http://10.0.0.100:32671/

卸载wordpress、MySQL(清除该目录下所部署的资源一次性清除)只加载yaml、json结尾的文件,其他不做处理
[root@K8s-master01 wordpress]#kubectl delete -f mysql-ephemeral/
secret "mysql-user-pass" deleted
service "mysql" deleted
deployment.apps "mysql" deleted
[root@K8s-master01 wordpress]#kubectl delete -f wordpress-apache-ephemeral/
service "wordpress" deleted
deployment.apps "wordpress" deleted

查看pods(已经没有了相关pods)
[root@K8s-master01 wordpress]#kubectl get pods
NAME                     READY   STATUS    RESTARTS      AGE
client-12383             0/1     Error     0             102m
client-5251              1/1     Running   0             103m
nginx-55f494c486-d442z   1/1     Running   0             107m
连续使用-f选项指定多个目录,同时执行部署操作
[root@K8s-master01 wordpress]#kubectl apply -f mysql-ephemeral/ -f wordpress-apache-ephemeral/
secret/mysql-user-pass created
service/mysql created
deployment.apps/mysql created
service/wordpress created
deployment.apps/wordpress created

[root@K8s-master01 wordpress]#kubectl get pods
NAME                         READY   STATUS    RESTARTS      AGE
client-12383                 0/1     Error     0             106m
client-5251                  1/1     Running   0             107m
mysql-787575d954-2lv4b       1/1     Running   0             18s
wordpress-6c854887c8-vfp9f   1/1     Running   0             18s

标签:kubectl,回滚,master01,扩缩容,demoapp,wordpress,mysql,pod,root
From: https://blog.51cto.com/lmm01/6901375

相关文章

  • 6.Pod的资源配置模板
    资源范式:五个一级字段kind:<String>指明对象的类型(资源类型),类型标签apiVersion:<String>指明对象的类型(资源类型),类型隶属的API群组metadata:<Object>对象元数据,名称/标签/注解和隶属的名称空间spec:<Object>对象数据,期望状态status:<Object>资源的实际状态,由系......
  • EAS_在controllerBean中调用其他方法,发生异常后,事务没有回滚
    首先列出例子如下:在一个方法中,执行了多个逻辑,第一部分是调用退票逻辑,第二部分是执行其他业务,这里我们遇到问题,退票逻辑执行成功,但是后面的代码异常,这时我们需要的是退回所有执行,这时我们就需要认清facade中的事务属性: 就是EJB规范的6种事务属性:Required:要求有事务:如果已......
  • git 回滚操作
    Git撤销&回滚操作(gitreset和getrevert)Git的工作流工作区:在gitaddxx之前,在自己当前分支所修改的代码内容!暂存区:已经gitaddxxx进去,且没有执行gitcommitxxx的。本地分支:已经gitcommit-mxxx提交到本地分支的。远程分支:gitpushoriginHEAD:refs/for/ma......
  • k8s中如何固定一个pod的IP地址?该集群网络插件是calico
    1、首先查看calico的CIDR地址范围[root@nccztsjb-node-17~]#calicoctlgetippoolNAMECIDRSELECTORdefault-pool172.23.0.0/16all() 2、然后呢,在这个地址范围内,给pod选择一个固定的IP地址比如:172.23.45.27 通过在pod中加入annotat......
  • iOS 开发 - 亲身经历告诉你如何把自己的库通过pod导入(详细步骤)
    记得一次面试有人问我有没有自己开源一些库,有是有的,但是确没有制作成可以通过pods导入的库,此乃一大憾事,后来跟着网上很多教程在那里捣鼓了半天,真的是半天时间,压根没用,今天无意间看到一篇博客,http://www.jianshu.com/p/489520b69d8b,参考了一下,有用,但并不是最正确的,里面有许多你不知......
  • k8s pod,pvc,pv无法删除问题
    一般删除步骤为:先删pod再删pvc最后删pv但是遇到pv始终处于“Terminating”状态,而且delete不掉1、查看pvc被哪个pod使用[root@hadoop03storageclass]#kubectldescribepvcPVC-NAME|grepMountedMountedBy:busybox-deployment-8588b74c4b-vw8jdpvpvc删不掉解决方......
  • 如何在pod级别进行安全的设置,设置容器的运行用户、用户组、挂载数据卷的权限?
    通过下面的yaml配置文件,在pod级别进行安全的设置: apiVersion:v1kind:Podmetadata:name:security-context-demospec:securityContext:runAsUser:1000runAsGroup:3000fsGroup:2000volumes:-name:sec-ctx-volemptyDir:{}contain......
  • (五) MdbCluster分布式内存数据库——数据迁移架构及节点扩缩容状态图
    (五)MdbCluster分布式内存数据库——数据迁移架构及节点扩缩容状态图 上一篇:(四)MdbCluster分布式内存数据库——业务消息处理本节主要讨论在系统扩容期间的数据迁移架构及节点的状态图。我们将通过介绍这两部分,慢慢展开复杂的扩缩容流程。下图从左到右,我们增......
  • Kubernetes修改Pod数量
    修改kubeletpod数量并在启动命令尾部添加变量$KUBELET_NODE_MAX_PODS如下:重启kubelet:[root@k8s02~]#systemctldaemon-reload&&systemctlrestartkubelet检查结果:[root@k8s02~]#kubectldescribenodek8s02|greppodspods:150pods:......
  • kubectl - 如何列出Pod中运行的所有容器,包括初始化容器
    初始化容器存储在spec.initContainers中:kubectlgetpodsPOD_NAME_HERE-ojsonpath={.spec.initContainers[*].name}运行的所有容器在containers中kubectlgetpodsPOD_NAME_HERE-ojsonpath={.spec.containers[*].name}可以使用JSONPathmagic来显示两者kubectlgetpo......