查看所有节点labels:
添加labels:
修改yaml配置文件:
添加nodeSelector配置,样式为[label.key]: [label.value]
修改后重启服务
参考文章: https://blog.csdn.net/lzy_zhi_yuan/article/details/106913428
nodeSelector配置相对简单,k8s提供了另外一个pod调度配置: nodeAffinity(节点亲和) ,相对于nodeSelector的简单匹配他拥有更多更加个性化的配置。
这段配置表示:该pod可以被调度到标签key为 "deploy.type" ,值为 "yztssjdxt-test" 或 "yztssjdxt" 的节点。
通过使用的语句不同,调度分成软策略(soft)和硬策略(hard) ,在软策略下,如果没有满足调度条件的节点,pod会忽略这条规则,继续完成调度。而硬策略下,pod必须部署到满足条件的节点上,如果没有满足条件的节点,就不停重试。
DuringScheduling和IgnoredDuringExecution组合生成目前主要的nodeaffinity策略
软硬策略可以组合使用 ,如下面这段配置中pod必须被调度到标签为 "deploy.type=yztssjdxt-test" 的节点。另外,在满足该条件的节点中,优先使用具有 "server=oms" 标签的节点。
nodeAffinity中nodeSelector字段下,节点满足任何一个条件即可;但更下一级matchExpressions,节点必须同时满足所有条件才能运行pod 。
如下面这段配置需要deploy.type=yztssjdxt-test、server=oms同时满足
而这段配置只需要deploy.type=yztssjdxt-test、deploy.type1=yztssjdxt满足一个即可
operator字段 :pod与node的匹配逻辑,可选的 *** 作符有:(我只测过in、notin)
如下方这段配置,pod将不会调度到deploy.type=yztssjdxt-test的node上
一、项目添加pod管理->步骤如下:
1、打开终端 cd 到项目的, 然后在终端执行: pod init ,项目文件夹中多处一个Podfile文件
2、在终端使用vim打开, 执行: vim Podfile ,编辑内容如下:
3、然后直接执行: pod install 安装pod。安装成功之后是这样的:
项目是这样的:
4、打开项目
使用pod管理的项目, 只能通过后缀为 xcworkspace 的文件打开,就是上图红框框的那个文件。打开之后,项目就是这样子的:
完成上面步骤,即可添加cocoapods项目管理。
第一种方式:手动修改podspec文件完成创建
1、创建项目(项目名称:MobileFrame)
2、 创建私有库文件夹
3、 创建Classes文件夹(默认指定文件夹 spec文件默认)
4、 在Classes文件夹下创建Person.h Person.m 文件
5、在Private目录下进行 git 初始化
1、git init
2、git add .
3、git commit-m"创建Person.h Person.m文件"
6、在Private目录下查看
7、在Private目录下 创建spec配置文件
//1.创建spec文件 (PrivateLib 私有库指定的文件)
pod spec create PrivateLib
//2.创建完私有库后编辑spec文件 以下几个地方修改
s.summary = "PrivateLib." //简短的描述
s.description = "PrivateLib本地私有库测试" //长描述长度大于s.summary(规范以避免不必要的问题出现)
//许可证改成MIT
s.license = "MIT"
//Git后面的URL去掉因为是本地私有库并没有在远程地址上
s.source = { :git =>"", :tag =>"#{s.version}" }
//之前创建的Classes文件夹与Spec文件中的对应 会匹配Classes下所有目录文件的.h .m 文件
s.source_files = "Classes", "Classes/**/*.{h,m}"
如下图:
8、在MobileFrame目录下 pod 初始化
pod init //创建podFile 初始化pod
9、 编辑podFile文件
因为是本地私有库 要指定地址(地址是在当前xxx.codeproj相对的路径如下图)
10、在MobileFrame目录下 pod install安装本地私有库
pod install
如果以上 *** 作都正确 pod install 后项目中没有出现Person.h Person.m 那么请重启Xcode
第一种方式:自动完成对podspec文件的创建
1、使用命令创建私有库,并且按照提示回答几个问题:
pod lib createLTFramework
私有库使用什么语言?
私有库中是否需要包含一个demo工程?
私有库是否需要包含一个测试框架?
私有库的类前缀是什么?
2、私有库工程已经创建好了,并且会自动打开
3、在私有库中加入一个分类文件,重新执行命令
pod install
4、在MobileFrame的podfile文件中添加”LTFramework”私有库路径,再重新执行命令安装私有库:
pod install
5、在MobileFrame中成功依赖私有库
6、使用私有库中的方法
7、在pod lib create时可能会出现如下的错误:
JerryMBP:~ Jerry.Yao$ pod lib create LTFramework
Cloning `https://github.com/CocoaPods/pod-template.git` into `LTFramework`.
Configuring LTFramework template.
/Users/Jerry.Yao/.rvm/rubies/ruby-2.3.0/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:in `require': cannot load such file -- colored2 (LoadError)
from /Users/Jerry.Yao/.rvm/rubies/ruby-2.3.0/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:in `require'
from /Users/Jerry.Yao/Desktop/Test/LTFramework/setup/TemplateConfigurator.rb:2:in `<top (required)>'
from ./configure:5:in `require_relative'
from ./configure:5:in `block in <main>'
from ./configure:4:in `each'
from ./configure:4:in `<main>'
To learn more about the template see `https://github.com/CocoaPods/pod-template.git`.
To learn more about creating a new pod, see `http://guides.cocoapods.org/making/making-a-cocoapod`.
解决办法是输入如下两条命令行:
1> sudo gem install colored2
2> sudo gem update --system
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)