k8s网络基础
文章一
基础知识
向外发送一个数据包
查找目的地址的路由信息,如果是直连路由,则在邻居表中找到他的Mac地址,然后把数据包直接发给他
如果不是直连路由,则在邻居表中找默认路由的Mac地址,把数据包发给默认路由对应的设备
如果找不到路由信息,那么就是不可达
如果邻居表中找不到Mac地址,就发起ARP请求询问
发出去的数据帧,Mac地址一直在变,但是只要不经历nat(snat和dnat),那么ip地址是全程不会变的
接收到一个数据包
如果数据帧的目标Mac地址不是自己的Mac地址,而且也不是广播Mac地址(ff:ff:ff:ff),且网卡没有开启混杂模式,则拒绝收包,混杂模式就是所有的帧我都接受
如果是目标地址是广播Mac地址,那就进入ARP请求处理
如果目标Mac地址就是自己的Mac地址,也要分几种情况讨论
目标ip地址是本机,则上送到上一层协议继续处理
如果目标ip不在本机,如果开启了路由转发,则转发这个分组,否则就丢弃这个分组
对于一台linux主机来说,影响网络方面的配置主要有以下几个:
网卡,网卡的配置,ip地址啊,是否开启,也可以虚拟出一张网卡
端口: 1-6 ...
hello
hello
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374apiVersion: v1kind: Podmetadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"v1","kind":"Pod","metadata":{"annotations":{},"labels":{"run":"myapp"},"name":"myapp","n ...
go总结
环境搭建
Go设置国内镜像源
1go env -w GOPROXY=https://goproxy.cn,direct
基础教程
go.mod 是用来管理我们引入模块的信息,里面记录了我们当前模块的模块名,以及需要的模块的信息
go mod init 名字 用来创建一个模块
go mod tydy 加载模块(本地,或者远程)
init 函数会最先执行,早于main函数
go中**{**不能单独一行
一行代表一个语句结束,如果要多个语句写一起,就必须使用;分隔,但是并不推荐这样做
数据类型
注意一下不同的数据类型就行了
int 这个和c语言不同哦,c语言是int ,不过使用起来是一样的,只是声明的时候不同
函数类型 声明的时候,是可以直接用变量接收一个函数的哦
变量声明方式
方式1 var 名字1,名字2 … type (没有赋值,默认值代替)
方式二 var 名字1,名字2 类型 = 值1,值2 (值类型必须一致
方式三 var 名字 1,名字2= 值1,值2 (根据类型推断)
方式四(局部变量才可以用) 名字1,名字2:=值 相当于 var 名字1 type,va ...
无题
什么是docker
Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术(虚拟机是属于软件层面的虚拟化技术)。由于隔离的进程独立于宿主和其它的隔离的进程(既然是一个进程,当然能够直接使用系统资源),因此也称其为容器
以下所有操作均在CentOS Linux release 7.6.1810 (Core)中进行,仅供参考哦,不同版本可能会有区别
为什么要用docker
传统的虚拟技术是利用软件虚拟出一套硬件环境,而且还需要再跑一个操作系统,所以无论执行速度,内存损耗,文件存储,都比传统的虚拟技术,而且一套dockerfile可以保证相同的环境,一次创建,到处可以运行,Docker 使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得非常简单,因此docker有以下几个优势
更高效的利用系统资源
更快的启动速度
一致运行环境
更轻 ...
hexo搭建
前言
我觉得hexo是一个非常不错的博客系统,非常轻量,非常适合程序员,我用过WordPress,我感觉它使用起来比较笨重,功能比较多,容易迷失自我,最最最让我受不了的是,你必须在那上面写文章,这是我最不能接受的(我不知道有没有什么可以改进的,至少我不知道)
安装nodejs
可以参考我的另一篇文章
安装git
这个比较简单,自行百度即可
安装hexo
1234# 全局安装hexo包npm install -g hexo-cli# 检查安装是否成功hexo -v
搭建博客
初始化博客
注意,这里是去GitHub克隆仓库,所以最好是能翻墙
12# 来到一个空目录,用来存放博客hexo init
成功后会产生上面文件
然后执行
12# 启动博客hexo s
访问后就能看到自己的博客了
博客文件解释
scaffolds
用来存放模板文件,比如文章的Front-matter内容,每次都会使用这里面的模板填充
source
用来存放文章,资源,标签,分类…这些东西的
_config.yml
用于配置网站信息的
package.json
用来存放下载的包,或者是插件这些
themes
...
git
什么是git
git是一个**“分布式”** “版本控制” 系统,简明扼要
什么是版本控制: 就是当你进行了修改,它会帮你保存原先的版本,当你想用原先版本的时候,它能帮你找到原先版本并且恢复过来
什么是分布式: 就是你可以从任何一个远程仓库中克隆过来,也可以提交到任何一个远程仓库,而不局限于某一个仓库
基本概念
工作空间:就是创建git仓库的目录(.git除外)
暂存区: 用于存放于 git add 文件的地方,可能有人会说了,直接提交到仓库不就好了吗?对,确实可以,但是你想啊,每次改变一个文件就要提交一次,你不烦啊,我们可以改变以后一次提交嘛,而且你提交之后,就会有新纪录,如果你改一个文件就提交一次那不得产生很多版本吗?,到时候回退都不知道咋整,所以得整体改变完了后再做一次提交,改了部分就直接放到暂存区,还有就是,你暂存了之后,如果不对还能把它拿出来修改,如果直接提交了再做修改则又是一次提交
仓库: 就是存放你历史信息的地方(.git)
在这里最需要补充的一点是,git不会管理那些没有被追踪的文件,比如你新创建一个文件,没有git add 它也就是没有追踪, 这样的文件,git是不 ...
hexo部署到远程服务器
hexo+git+docker/nginx
怎么安装,这些就自行百度,或者关注我之后的博客
服务器端
创建一个用户
由于需要使用到ssh免密操作,所有不好直接把公钥放到root用户下,新建一个用户来管理(当然,你也可以用root用户)
1234567useradd git# 将本地创建好的公钥放到/home/git/.ssh/authorized_keys 里面,这样就能免密登录了mkdir /home/git/.sshvim /home/git/.ssh/authorized_keys #输入你的秘钥# 设置不能通过git用户登录服务器,但是可以使用git操作仓库vim /etc/passwd# git:x:1002:1002::/home/git:/usr/bin/git-shell 只需要将/bin/bash 改成 /usr/bin/git-shell 这个就好了 ,需要改成自己git-shell的路径哦,每个人的git环境路径可能是不一样的
搭建git服务器
1234# 在服务器上搭建一个裸仓库,用来当git服务器,目录自己选git init --bare /opt/gi ...
Linux基础
前言
以下总结全部基于CentOS Linux release 7.6.1810 (Core) 总结出来的命令,不同版本对应的命令可能不同
小技巧: 当我们不会某个命令时,我们可以使用 命令 --help 来查看它的参数及使用
系统目录结构
必须存在的目录
/bin 里面存放着一些经常使用的命令
/boot 存放着linux启动时的核心文件
/dev 里面存放着linux外部设备文件
/etc 里面存放系统管理需要的配置文件
/lib 存放着基本的动态链接共享库
/media 放置可移除的设备,U盘 DVD这些
/mnt 临时挂在其他设备,与media差不多
/opt 给额外软件所摆放的目录
/run 用来放置系统启动的时候产生的信息 /var/run 软连接了这个目录
/sbin 超级管理员使用的系统管理工具
/srv 用于放某些服务器所需要的数据
/temp 临时文件 系统会开机自动删除
/usr (unix software resource) 很多用户的应用程序和文件都放在这个文件下面(可分享,不变动),和windows的C:\Program Files 类似
/usr/ ...
云模型概述
前言
不同的人对于云计算的要求是不一样的,有的需要灵活,有的需要方便,因此诞生出了几种云服务模型,我们可以根据自己的需要,选择不同的云计算模型
IaaS(基础设施即服务)
云服务商帮我们管理那些硬件,服务器啊,网络啊,存储啊,不需要我们去操心,如果你不想自己去购买与维护这些硬件,那么Iaas是一个很好的选择,在这个模型下我们仍有很大的工作量要去做,管理操作系统,数据库,应用程序,但是也相对灵活
PaaS(平台即服务)
云服务商,提供了基本的操作系统,数据库,web服务器,中间件这些,我们只要专心的写我们的代码和少量的平台搭建
SaaS(软件即服务)
云服务商给我提供好已经可以开箱即用的应用程序,我们只需要关心怎么去运营就好了
python基础
字符串三种格式:
‘hello’ “hello” “”“hello”"" 前面两种没有什么区别,第三种跟前面两种的区别在于 里面是可以直接换行的,不需要\n