我将使用非常具体的方式来解释问题,但我认为这比抽象问题更具体...
比如,在kubernetes集群之外但在网络中有一个mongo db副本集.副本集的所有成员的IP地址由app服务器和数据库服务器中的/ etc/hosts解析.
在实验/过渡阶段,我需要从kubernetes pod访问那些mongo db服务器.但是,kubernetes似乎不允许在pods /容器中向/ etc/hosts添加自定义条目.
mongo db副本集已经在处理大型数据集,因此无法在群集中创建新的副本集.
Becaseu我使用GKE,我想应该避免更改kube-dns命名空间中的任何资源.配置或替换kube-dns以适合我的需要是最后一件事.
是一种解决kubernetes集群中自定义主机名的IP地址的方法吗?
这只是一个想法,但是如果kube2sky可以读取一些configmap的条目并将它们用作dns记录,那么它就会很棒.例如repl1.mongo.local: 192.168.10.100
.
编辑:我从https://github.com/kubernetes/kubernetes/issues/12337引用了这个问题
例如,我有以下数据库结构:
/
+ users
+ 1
+ items
+ -xxx: "hello"
+ 2
+ items
Run Code Online (Sandbox Code Playgroud)
然后;
var usersRef = new Firebase("https://mydb.firebaseio.com/users");
usersRef.on("child_changed", function(snapshot) {
utils.debug(JSON.stringify(snapshot.exportVal()));
});
Run Code Online (Sandbox Code Playgroud)
如果某个值"world"被推送到"/ users/1/items",我可能会得到:
{"items": {"-xxx": "hello", "-yyy": "world"}}
Run Code Online (Sandbox Code Playgroud)
那么,如何判断哪一个被改变了?
我需要("child_added")每一个引用"/ users/$ id/items"?
注意:我正在尝试在node.js中编写管理进程.
我有container_fs_usage_bytes
prometheus监视容器根fs,但似乎cAdvisor中没有其他卷的指标.
我按照此说明 https://cloud.google.com/monitoring/agent/install-agent#linux-install
$ curl -O "https://repo.stackdriver.com/stack-install.sh"
$ sudo bash stack-install.sh --write-gcm
Unidentifiable or unsupported platform.
Run Code Online (Sandbox Code Playgroud)
/ etc/os-release的内容.
$ cat /etc/os-release
BUILD_ID=8820.0.0
NAME="Container-VM Image"
GOOGLE_CRASH_ID=Lakitu
VERSION_ID=55
BUG_REPORT_URL=https://crbug.com/new
PRETTY_NAME="Google Container-VM Image"
VERSION=55
GOOGLE_METRICS_PRODUCT_ID=26
HOME_URL="https://cloud.google.com/compute/docs/containers/vm-image/"
ID=gci
Run Code Online (Sandbox Code Playgroud)
为了更新特定包,需要更新整个OS映像
所以,似乎我们必须等到更新堆栈驱动程序代理安装的映像版本或放弃它.
此vm图像也不是我的选择.默认情况下,新创建的GKE节点使用Container-VM映像.所以现在我将尝试通过创建节点gcloud container node-pools create --image-type
如果祖先节点定义了名称空间,我可以使用它们:
> Nokogiri::XML(<<-XML
<?xml version='1.0' encoding='UTF-8'?>
<package xmlns="http://www.idpf.org/2007/opf" version="2.0" unique-identifier="bookid">
<metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf">
<dc:creator opf:role="aut">John Doe</dc:creator>
</metadata>
</package>
XML
> xml.at_xpath("//dc:creator[@opf:role='aut']", xml.at_xpath("//xmlns:metadata").namespaces).text
=> "John Doe"
Run Code Online (Sandbox Code Playgroud)
但是,如何处理XML呢?
> Nokogiri::XML(<<-XML
<?xml version='1.0' encoding='UTF-8'?>
<package xmlns="http://www.idpf.org/2007/opf" version="2.0" unique-identifier="bookid">
<metadata>
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf" opf:role="aut">John Doe</dc:creator>
</metadata>
</package>
XML
> xml.at_xpath("//dc:creator[@opf:role='aut']", xml.at_xpath("//xmlns:metadata").namespaces).text
Nokogiri::XML::XPath::SyntaxError: Undefined namespace prefix: //dc:creator[@opf:role='aut']
Run Code Online (Sandbox Code Playgroud)
我认为xml.remove_namespaces!
或文字命名空间参数at_xpath
是最后的手段.
构建脚本的简化版本是:
# change Podfild here
pod install
xcodebuild
Run Code Online (Sandbox Code Playgroud)
它适用于Xcode 4.6,但使用Xcode5-DP5则失败了.
fatal error: file '/path/to/myproject/Pods/Pods-environment.h' has been modified
since the precompiled header
'/Users/hiroshi/Library/Developer/Xcode/DerivedData/MyProject-gfmuvpipjscewkdnqacgumhfarrd/Build/Intermediates/PrecompiledHeaders/MyProject-Prefix-dwjpvcnrlaydzmegejmcvrtcfkpf/MyProject-Prefix.pch.pch'
was built
Run Code Online (Sandbox Code Playgroud) 只需输入gcloud
帮助需要5秒钟.
$ gcloud
...
gcloud 0.30s user 0.13s system 7% cpu 5.508 total
$ gcloud version
Google Cloud SDK 128.0.0
alpha 2016.01.12
bq 2.0.24
bq-nix 2.0.24
core 2016.09.23
core-nix 2016.09.20
gcloud
gsutil 4.21
gsutil-nix 4.21
kubectl
kubectl-darwin-x86_64 1.3.7
$ uname -a
Darwin hiroshi-MacBook.local 16.0.0 Darwin Kernel Version 16.0.0: Mon Aug 29 17:56:20 PDT 2016; root:xnu-3789.1.32~3/RELEASE_X86_64 x86_64
Run Code Online (Sandbox Code Playgroud) kubernetes ×2
cocoapods ×1
firebase ×1
gcloud ×1
nokogiri ×1
prometheus ×1
ruby ×1
stackdriver ×1
xcode5 ×1