首页
3D照片墙
统计
留言
Search
1
1.OAuth 的简单理解
115 阅读
2
多个拦截器的执行顺序
105 阅读
3
基于Annotation方式的声明式事务
102 阅读
4
6.设计模式汇总
101 阅读
5
Unity 依赖注入
98 阅读
Java
JDBC
Spring
Spring MVC
SpringBoot
SpringCloud
MybatisPlus
Mybatis
Maven
SpringSecurity
JVM
java注解与反射
Java JUC并发编程
SSM
.NET
IdentityServer4
EF
.Net Core
AbpVNext + DDD
.NET MVC Api
前端
Jquery&JavaScript
uniapp
VUE
Echars
Vue底层原理
Python
Django
软考笔记
软件设计师
1.计算机组成与体系结构
10.面向对象技术
11.UML类图建模
12.面向对象程序设计
13.数据结构
14.算法基础
16.知识产权标准化
17.程序设计语言
2.操作系统
3.数据库
4.数据库设计
5.计算机网络
6.信息安全
7.系统开发基础
8.项目管理
9.数据流图
架构设计
CQRS架构
DDD架构
数据库技术
SQL锁
SqlServer
Oracle 主从备份
Oracle RAC集群
Mysql
云原生/容器技术
kubernetes
Docker
数据结构与算法
常用中间件
Redis
RabbitMQ 消息队列
ElasticSearch
其他
PHP
OAuth 2.0
WebSocket
ArkTs Harmony 开发
运维
Search
标签搜索
排序算法
vue
算法
遍历
docker
线性
数组
dom
synchronized
数据库
xml语言
log4j
bigint
静态函数
静态方法
哈夫曼树
const
冒泡排序
商标设计
命令模式
Bi8bo
累计撰写
304
篇文章
累计收到
6
条评论
首页
栏目
Java
JDBC
Spring
Spring MVC
SpringBoot
SpringCloud
MybatisPlus
Mybatis
Maven
SpringSecurity
JVM
java注解与反射
Java JUC并发编程
SSM
.NET
IdentityServer4
EF
.Net Core
AbpVNext + DDD
.NET MVC Api
前端
Jquery&JavaScript
uniapp
VUE
Echars
Vue底层原理
Python
Django
软考笔记
软件设计师
1.计算机组成与体系结构
10.面向对象技术
11.UML类图建模
12.面向对象程序设计
13.数据结构
14.算法基础
16.知识产权标准化
17.程序设计语言
2.操作系统
3.数据库
4.数据库设计
5.计算机网络
6.信息安全
7.系统开发基础
8.项目管理
9.数据流图
架构设计
CQRS架构
DDD架构
数据库技术
SQL锁
SqlServer
Oracle 主从备份
Oracle RAC集群
Mysql
云原生/容器技术
kubernetes
Docker
数据结构与算法
常用中间件
Redis
RabbitMQ 消息队列
ElasticSearch
其他
PHP
OAuth 2.0
WebSocket
ArkTs Harmony 开发
运维
页面
3D照片墙
统计
留言
搜索到
12
篇与
的结果
2023-04-24
DockerFile基本 语法
Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。将来Docker可以根据Dockerfile帮我们构建镜像。常见指令如下: -- EXPOSE 最终的镜像使用者还是需要 -p去映射端口,这个只是给使用者看的 其他命令较少用,可以去官方文档看 编写完dockerfile后,使用 docker build -t myImage:10 . -t 给镜像起名,格式repository:tag ,不指定默认为lastest . 指定dockerfile 所在目录,当前目录就用 .
2023年04月24日
97 阅读
0 评论
31 点赞
2023-03-30
Docker Swarm 集群搭建
所有节点开放这几个端口 4789被云主机厂商设置为保留端口了 我们需要改成 5789或其他的 #所有节点 安装swarm docker pull swarm #主节点初始化 docker swarm init --autolock=false --advertise-addr 81.71.119.20 --data-path-port 5789 #从节点加入主节点时必须加--advertise-addr 参数 (--advertise-addr值为从节点的外网ip) #不加的话 打印日志 journalctl -u docker --no-pager #会发现主节点找的是从节点的内网IP去连接,然后一直超时。。。 docker swarm join --token SWMTKN-1-0w2otqddvl4lqej10on3zwt2651gle5ovbpanqwnunu51gu50e-c3t7bop82r1r88g47gxkfcmix 81.71.119.20:2377 --advertise-addr 43.139.32.46 看到成功! 可以进行组网
2023年03月30日
55 阅读
0 评论
4 点赞
2023-02-16
【云原生】k8s集群命令行工具kubectl之故障排除和调试命令
一、describe 显示某个资源或某组资源的详细信息。 用法: kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | -l label] | TYPE/NAME) 示例: 显示单个node节点详细信息 kubectl describe nodes k8s-node1 显示单个pod详细信息 kubectl describe pods/nginx 显示文件描述的资源的详细信息 kubectl describe -f myapp-deployment.yaml 显示以k8s开头的节点的详细信息 kubectl describe node k8s 显示以myapp-deployment开头的pod的详细信息,pod命名通常与其控制器有关 kubectl describe pods myapp-deployment 显示指定label的pod详细信息 kubectl describe po -l name=myapp 二、logs 输出 pod 中某容器的日志。 用法: kubectl logs [-f] [-p] (POD | TYPE/NAME) [-c CONTAINER] 示例: 首先: # 运行一个nginx Pod kubectl run nginx --image=nginx 其次: #获取指定namespace 下的 podname 的pod日志 kubectl logs <podname> -n <namespace> # 获取pod第一个容器的日志 kubectl logs nginx # 获取pod中所有容器的日志 kubectl logs <podname> --all-containers=true # 获取labels包含 name=myapp的所有pod下的所有容器日志 kubectl logs -l name=myapp --all-containers=true # 持续输出pod中某个容器产生的日志,容器名为 myhello kubectl logs -f -c myhello <podname> # 持续输出labels包含 name=myapp的所有pod下的所有容器日志,最大并发日志请求数为10 kubectl logs -f -l name=myapp --all-containers=true --max-log-requests=10 # 获取最近几行日志 kubectl logs --tail=5 nginx # 获取最近一个小时的日志 kubectl logs --since=1h nginx # 获取pod中第一个容器的日志 kubectl logs pod/<podname> # 获取指定deployment中,第一个pod的指定容器的日志。默认日志请求并发数为5 kubectl logs deployment/myapp-deployment -c myhello 更多示例: # 输出pod web-1中曾经运行过的,但目前已终止的容器ruby的日志 kubectl logs -p -c ruby web-1 三、attach 连接到一个正在运行的容器。 用法: kubectl attach (POD | TYPE/NAME) -c CONTAINER 示例: # 连接到指定pod中正在运行的第一个容器 kubectl attach <podname> # 连接到指定pod中正在运行容器名为 myhello的容器 kubectl attach <podname> -c myhello # 连接到指定deployments正在运行的第一个容器 kubectl attach deployments/myapp-deployment 四、exec 在容器中执行相关命令。 用法: kubectl exec (POD | TYPE/NAME) [-c CONTAINER] [flags] -- COMMAND [args...] 示例: # 在pod nginx 第一个容器中执行date命令 kubectl exec nginx -- date # 通过-c 指定容器 kubectl exec <podname> -c myhello -- date # 传入 ls命令和相关参数 kubectl exec <podname> -c myhello -- ls -al ./ # 通过 -it 开启一个虚拟终端 kubectl exec <podname> -c myhello -i -t -- /bin/sh # deployment/myapp-deployment第一个容器中执行命令 kubectl exec deployments/myapp-deployment -- date # svc/myapp-svc 第一个容器中执行命令 kubectl exec svc/myapp-svc -- date 五、port-forward 将一个或者多个本地端口转发到 pod。如果有多个pod符合条件,将自动选择一个pod。当所选pod终止时,转发会话结束,需要重新运行该命令才能恢复转发。 用法: kubectl port-forward TYPE/NAME [options] [LOCAL_PORT:]REMOTE_PORT [... [LOCAL_PORT_N:]REMOTE_PORT_N] 示例: # 转发本机5000 6000 端口到pod对应端口 kubectl port-forward pod/nginx 5000 6000 # 转发本机 5000 6000 分别到80和81端口 kubectl port-forward pod/nginx 5000:80 6000:81 # 从deployments/myapp-deployment 选择一个pod进行转发操作 kubectl port-forward deployments/myapp-deployment 5000 6000 # 从service中选择第一个pod,并将端口转发到端口名为http的端口上 kubectl port-forward service/myapp-svc 8080:http # 通过--address指定监听地址 kubectl port-forward --address localhost,192.168.239.142 pod/nginx 8888:80 # 随机一个本地端口,转发到pod的指定端口 kubectl port-forward pod/nginx :80 六、proxy 在本地主机和Kubernetes API服务器之间创建代理服务器或应用程序级网关。它还允许通过指定的HTTP路径提供静态内容。所有传入数据都通过一个端口进入并转发到远程Kubernetes API服务器端口,但与静态内容路径匹配的路径除外。 用法: kubectl proxy [--port=PORT] [--www=static-dir] [--www-prefix=prefix] [--apiprefix=prefix] 示例: kubectl proxy --api-prefix=/custom/ --port=8011 --www=$HOME/ --wwwprefix=/static/ # 通过代理访问apiserver接口 curl http://127.0.0.1:8011/custom/api/v1/pods # 通过代理访问静态内容 curl http://127.0.0.1:8011/static/ 七、cp 将文件和目录拷入/拷出容器。 用法: kubectl cp <file-spec-src> <file-spec-dest> 示例: # 把pod第一个容器中当前工作目录下的app 复制到宿主机的/tmp/app kubectl cp <podname>:app /tmp/app # 把/tmp/app 文件复制到 pod第一个容器当前工作目录下,命名为app1 kubectl cp /tmp/app <podname>:app1 # 把default命名空间下pod中容器myhello中当前工作目录下的app 复制到宿主机的/tmp/app kubectl cp default/<podname>:app /tmp/app -c myhello # 查看容器当前工作目录内容 kubectl exec <podname> ls 八、debug 创建用于排查工作负载和节点故障的调试会话。 用法: kubectl debug (POD | TYPE[[.VERSION].GROUP]/NAME) [ -- COMMAND [args...] ] 8.1、案例1:共享进程空间 # 运行一个nginx pod kubectl run nginx --image=nginx # 创建一个新的pod my-debugger 用来调试, #将原有pod内的容器拷贝到新的pod,并增加一个镜像为ubuntu的容器 # 并且通过进程共享 kubectl debug nginx -it --image=ubuntu --copy-to=my-debugger --share-processes # 开启另一个终端,可以查看命名空间共享配置 kubectl get pod my-debugger -o yaml | grep shareProcessNamespace 调试容器内,执行ps ax可以看到包括被调试容器在内的所有进程。 通过访问/proc/{PID}/root 可访问到其他容器的文件系统,PID为主进程ID。 8.2、案例2:更改启动命令、容器镜像 # 运行一个myhello的pod kubectl run myhello --image=xlhmzch/hello:1.0.0 # 更改容器启动命令 kubectl debug myhello -it --copy-to=my-debugger1 --container=myhello -- /bin/sh # 更改容器镜像 kubectl debug myhello -it --copy-to=my-debugger2 --set-image=myhello=xlhmzch/hello:1.0.1 kubectl debug <podname> -it --copy-to=my-debugger3 --set-image=myhello=xlhmzch/hello:1.0.1,myredis=redis:alpine # 复制并注入临时容器,共享进程空间同时修改myhello容器的镜像 kubectl debug myhello -it --copy-to=my-debugger4 --image=busybox --setimage=myhello=xlhmzch/hello:1.0.1 --share-processes 8.3、案例3:调试节点 # 通过创建Pod来调试节点,Pod将运行在指定的节点上,节点的根文件系统挂载在/host目录下 kubectl debug node/k8s-node1 -it --image=busybox 8.4、其他 其他,需要为集群开启临时容器等特性功能,否则无法使用以下操作。 # 直接在指定的pod中创建一个基于busybox的临时容器 kubectl debug <podname> -it --image=busybox # 直接在指定的pod中创建一个基于自定义镜像的容器,并且为容器指定容器名为debugger kubectl debug <podname> --image=<cusimage> -c debugger 总结 以下是常用的kubectl故障排除和调试命令: kubectl get 用于查看资源对象的状态,常用的参数包括: kubectl get pods:查看Pod的状态; kubectl get nodes:查看Node的状态; kubectl get services:查看Service的状态; kubectl get deployments:查看Deployment的状态。 kubectl describe 用于查看资源对象的详细信息,常用的参数包括: kubectl describe pod :查看Pod的详细信息; kubectl describe node :查看Node的详细信息; kubectl describe service :查看Service的详细信息; kubectl describe deployment :查看Deployment的详细信息。 kubectl logs 用于查看容器的日志信息,常用的参数包括: kubectl logs :查看Pod中所有容器的日志信息; kubectl logs -c :查看Pod中指定容器的日志信息。 kubectl exec 用于在容器中执行命令,常用的参数包括: kubectl exec :在Pod中执行指定命令; kubectl exec -c :在Pod中指定容器中执行指定命令。 kubectl port-forward 用于将Pod中的端口映射到本地端口,常用的参数kubectl port-forward :将Pod中指定端口映射到本地端口。 kubectl apply 用于应用或更新Kubernetes资源对象的配置,常用的参数kubectl apply -f 应用或更新指定文件中的资源对象配置。 kubectl delete 用于删除Kubernetes资源对象,常用的参数包括: kubectl delete pod :删除指定Pod; kubectl delete node :删除指定Node; kubectl delete service :删除指定Service; kubectl delete deployment :删除指定Deployment。 以上是常用的kubectl故障排除和调试命令,可以帮助管理员对Kubernetes集群进行故障排除和调试。
2023年02月16日
82 阅读
0 评论
46 点赞
2023-01-24
1.关闭防火墙
进行所有操作前建议手动先关闭所有服务器的防火墙 systemctl stop firewalld systemctl disable firewalld
2023年01月24日
4 阅读
0 评论
96 点赞
2022-10-09
k8s各组件简介
1.k8s 目前推荐 3 master 3 node master: api server :资源统一操作入口,提供认证授权,api服务发现与注册 schedule:调度器,部署在哪个节点自动分配 Etcd: 存储集群中对象的状态,元数据等 node: kublet:管理容器的生命周期 kubelteproxy:内部的服务发现与负载均衡,内部端口给外部开放调用 namespace 不同命名空间下访问,需要带上命名空间,相同命名空间直接访问 Pod IP访问 ClusterIP集群内使用 NodePort 集群外访问 LoadBalancer 负载均衡+NodePort的方式 Igress(路由 )和SP架构的Nginx代理意思差不多,k8s用Igress csi 容器存储接口 。 OSS,存储卷等抽象,提供POD访问 数据库目前是主主模式,一个主节点只同步另一个主节点的数据,故障时可以快速切换到另一个主 Harbor 用于同步镜像版本,从仓库同步,其他node再从harbor服务器同步 云端平台需要两个弹性网卡,需要两个外网IP,一个提供harbor,一个提供网关对外 network_type:cilium需要的内核版本比较高,建议使用calioc helm安装服务进k8s 2.运维操作
2022年10月09日
81 阅读
0 评论
49 点赞
1
2
3