修改named.conf。修改第13行和第21行
下面是 named.rfc1912 修改位置,在最后
所以用cp -p 复制文件,保留权限
nslookup 回车,server是看哪个dns 在起作用
dns服务器要配置给所有公共服务节点和 k8s 节点
就在网络文件加个DNS2就行了,网络还要重启
2.资源清单托管服务 Nginx
上面的命令拼写错误
这个文件主要修改这里
启动nginx
使用nginx了
3. NFS
k8s中使用 nfs
deployment.yaml修改的地方
这个地址就是nginx的地址
这是使用nfs作为后端存储
4. python上云
loadbalancer 的IP 是 metallb-system 这个命名空间下的东西提供的
python代码不需要编译的,但是需要合适的环境将其运行起来
cmdbdb.sql怎么用起来呢?需要安装mysql
通过headless service,也就是通过域名的方式持久访问 mysql
sql文件要导入到 syscmd 也就是 MYSQL_DATABASE 中来
下面是数据库映射的nfs, 直接把sql文件放到syscmdb目录下是不行的,往下翻有导入数据表的正确操作
在 k8s 内部测试mysql 是否可以通过域名连通
上面就是create busybox的 yaml的内容
两个域名都行,对应的ip 就是 pod 的 ip.
nfs 这里也可以验证
创建镜像,上传镜像
deployment一般是无状态的服务,statefulset一般是有状态的服务。pod想被访问就需要 service 文件。通过域名访问就用 ingress
上面标注的就是域名
metallb-system 和 ingress-nginx-controller上的 LoadBalancer 里的EXTERNAL-IP的关系是
我用的之前是svc nodePort, 域名配合nodePort端口的方式访问的,没有用到 ingress-nginx-controller
"裸机K8s"通常指的是在裸机服务器上直接安装和运行 Kubernetes(K8s)集群,而不是在虚拟机或云平台上
MetalLB 提供的外部 IP 地址是从一个预先配置的 IP 地址池中获取的,这些 IP 地址通常是你在局域网内保留的一些空闲 IP 地址
MetalLB 提供外部 IP 地址分配功能,使得 LoadBalancer 类型的服务可以在裸机 Kubernetes 集群中获得外部 IP。
Ingress-Nginx-Controller 使用 LoadBalancer 类型的服务暴露其自身,并通过分配的外部 IP 地址接收和管理外部流量。
MetalLB 和 Ingress-Nginx-Controller 共同协作,使得裸机 Kubernetes 集群可以有效地处理和路由外部 HTTP/HTTPS 流量。
5. go项目上云(go可以做类似微信的及时通信项目,百万并发)
oss 是为了视频,图片,音频,这次没有使用,只使用了mysql 和 redis
这里的mysql 也是一个headless svc,访问mysql pod的时候,使用的是 它的podname.svcname.namespace 直接访问到mysql
redis部署也是statefulset, 也连到redis.
镜像的制作都是在harbor服务器上。
通过不同的命名空间来隔离不同的项目
golang项目编译成二进制文件,运行二进制文件,运行项目
下面是go编译环境的搭建
ADD能自动解压
6. 部署Java 项目
需要考虑的是架构 资源 和 第三方中间件,开发,运维,测试都要考虑
预发布环境(Pre-production Environment)是一个接近生产环境的环境,用于在正式发布到生产环境之前进行测试和验证。这个环境模拟生产环境的配置、数据和工作负载,以确保新版本的软件或系统在生产环境中能够顺利运行,并且不会引入重大问题。
Deployment 也可以通过外部存储实现持久化存储的
项目发布 一种是 打jar包,然后再jdk的环境运行起来,还有就是 war包,放到tomcat,才完成发布
镜像仓库如果是私有的,你就需要secret 或者 serviceAccount 来搞
Java项目结构,源码和 application.yaml
有个源码,然后编译 需要 maven,maven 需要 jdk
编译生成war,添加到基础镜像中,就能生成应用镜像
导入数据库的另一种方式