子网掩码
https://blog.csdn.net/pagnzong/article/details/112127329
https://blog.csdn.net/pagnzong/article/details/112737814?spm=1001.2014.3001.5502
案例:
IP地址 172.18.248.200/20 表示一个网络地址,其中 172.18.248.200 是网络中一个特定的IP地址,而 /20 是子网掩码的CIDR(无类别域间路由)表示法。CIDR表示法用于指定IP地址中用于网络地址的位数。
IP地址:172.18.248.200 是这个网络中的一个IP地址。
子网掩码:/20 表示前20位是网络部分,剩余的位数(32-20=12位)是主机部分。换算成点分十进制的子网掩码是 255.255.240.0。
网络地址:在这个例子中,网络地址是 172.18.240.0。这是通过将IP地址的主机部分置为0得到的。
广播地址:对于这个网络,广播地址是 172.18.255.255。这是通过将IP地址的主机部分置为1得到的。
可用的IP地址范围:在这个网络中 ...
git-rebase
推荐的理论视频:我觉得讲的特别好,基本上讲懂了 git merge 和 git rebase 的区别
[推荐的实践视频](【git常用操作–git rebase和git merge】https://www.bilibili.com/video/BV1Ur4y1q7xB?vd_source=14bd7726c6d4866de1b04d07b8d59f38):如果看了理论视频有点抽象,那就实践一下就可以了
相关博客
git merge#特点: 永远向前
这东西很简单,也很暴力
就是将一个分支合并到另一个分支时,然后直接处理,形成新一个 commit ,然后推送
git rebase#特点: 版本倒退
这东西有点复杂: 比如现在有一个 main分支 和 ecn分支(ecn分支是从main抽出来的)
共同的起点
ecn 什么时候 从 main分支中抽离出来,这个起点就是这个
因此如果 ecn 想要修改信息就只能修改这一段信息
对 commit 的处理
在commit中有几个东西
commit 的推送信息
commit 的数量
commit 每一个的内容
应该还有其他的,想不出来…
...
持久化存储
持久化存储#这个 感觉 很重要
Volumes#
HostPath
将节点上的文件或目录挂载到 Pod 上,该目录会变成持久化存储目录,即使 Pod 删除后重启,也可以重新加载到该目录,目录下的文件不会丢失
首先创建配置
12345678910111213141516apiVersion: v1kind: Podmetadata: name: test-volume-pdspec: volumes: # 卷定义在spec级别 - name: test-volume hostPath: # 与主机共享目录 path: /usr/share/xx # 主机上的路径 type: DirectoryOrCreate # 目录的类型 containers: - image: nginx name: nginx-volume volumeMounts: # 挂载卷的配置在容器级别 - mountPath: /test-pd name: test-volume
可以在主机上找到配置目录
12345678hhhyc@hhhyc ...
关于花两天来连接数据库这件事
重申标题:
我真的差不多花了两天在连接数据库
第一天#当我连接了 Lens 和 Termius 后,就需要跑通项目来:
所以我需要连接 Oracle ,但是一开始其实是要 Oracle 的 客户端
所以我花了一下午的时间来下载创建 Oracle instant client 和 PL/sql
其实个人感觉配这些数据还是挺好配的,但是这些数据库其实是在内网的,因此我在本地连不上这些数据库,好吧我也不知地为什么连不上数据库,个人感觉这个东西就是不知道怎么找原因,反正连不上都是一个报错
后来问了一下老板–> DataGrip 直接启动,对当时为什么没想到,可能是觉得oracle太高级了
不应该使用DataGrip来连接,事实上说明,JB家的产品同样牛逼
但是我还是连不上数据库,因为数据库是在内网中的
第二天#yzy 突然跟我说可以用 Termius 的 port fowarding 来远程连接服务器。
因为我连接了 hduhelp 的服务器,而这个服务器和那些数据库的域名在同一个内网中
因此我就可以通过 port fowarding 来连接这些数据库,准确的来说是把这些数据库的端口 ...
Secret
创建 Secret#
sudo kubectl create secret -h
Create a secret with specified type.
A docker-registry type secret is for accessing a container registry. – docker 仓库加密(常用)
A generic type secret indicate an Opaque secret type. – 普通文本加密
A tls type secret holds TLS certificate and its associated key.
Available Commands: docker-registry Create a secret for use with a Docker registry generic Create a secret from a local file, directory, or literalvalue tls Create a TLS secret
Usa ...
configMap
直接看帮助
创建 configMap#1kubectl create cm -h # configMap = cm
12345678910111213141516171819Examples: # Create a new config map named my-config based on folder bar kubectl create configmap my-config --from-file=path/to/bar # Create a new config map named my-config with specified keys instead of filebasenames on disk kubectl create configmap my-config --from-file=key1=/path/to/bar/file1.txt--from-file=key2=/path/to/bar/file2.txt # Create a new config map named my-config with key1=config1 and ...
Ingress
k3s 自动安装了Ingress
配置
123456789101112131415apiVersion: networking.k8s.io/v1 # 版本kind: Ingress # 类型metedata: # 元数据 name: ingress-nginx-example annotations: kubernetes.io/ingresss.class: "nginx"spec: rules: - host: k8s.service.cn # 这里监听的是service监听的地址 http: path: # 这里是 nginx 本地的一个配置,由于我没有用过nginx,所以跳过 - backend: serviceName: nginx-svc # 代理到哪个service上去 servicPort: 80 # service 的端口 path: /so # 等价于nginx 中的 location的路径前缀匹配
个人认为,这个就是nginx就是监听 ...
Service
Service 是 某种抽象封装 的 Pod ,因此Service也有其IP
Service 也是 Pod ,因此他们只能在k8s集群内部被访问到,如果想要从外部访问
用 Ingress
用 NodePort
服务发现:在微服务架构中,服务可能会动态地注册和注销,服务的端口可能会变化。服务发现机制允许服务实例在启动时注册自己的endpoint信息,包括IP和端口,客户端通过服务发现机制来获取最新的服务endpoint信息。
原理#
看下面解析配合上面的图片
各个部分
Service
每个Service都有其IP
创建 Service 时,会创建一个服务名即 nginx-svc , 同时他会绑定一个端口号 :80:32057
:80 是pod暴露出来的端口号,:32057 是Service监听的端口号
当使用 NodePort 类型的 Service 时,外部流量通过 Node IP(也就是192.168.113.120) 和指定的端口(NodePort:32057)访问服务。这允许从集群外部访问集群内的服务。
Service 通过选择器(selector ...
DaemonSet
在Kubernetes中,DaemonSet 是一种控制器,用于确保在集群中的每个节点(或您指定的一组节点)上运行一个 Pod 的副本。DaemonSet 常用于在集群中运行一些提供系统级功能的 Pod,例如:
日志收集:在每个节点上运行日志收集器,以收集所有节点上的容器日志。
监控:在每个节点上部署监控代理,以收集性能指标。
存储:为集群中的每个节点提供存储相关服务,例如使用 glusterfs 或 ceph。
网络:运行网络插件,例如覆盖网络或服务发现。
安全:部署安全相关的代理或扫描器。
DaemonSet 与 Deployment 类似,都可以用来管理 Pod 的生命周期,但它们的主要区别在于:
范围:Deployment 管理的 Pod 副本数量是可配置的,而 DaemonSet 总是尝试在每个符合条件的节点上运行一个 Pod 副本。
选择性:DaemonSet 可以定义在哪些节点上运行 Pod,通过节点标签和选择器来控制。
更新:当 DaemonSet 更新时,它会逐个节点更新 Pod,而不是同时更新所有 Pod。
为什么#所以为什么要使用DaemonSet,来 ...