我已经在我的Mac上用docker-machine创建了一个kubenetes集群,遵循以下文档:
http://kubernetes.io/docs/getting-started-guides/docker/
我可以在127.0.0.1:8080上从实例内部访问正常的api,但是我想从我的macbook外部访问它。我知道有一个安全端口:6443,但我不确定如何设置凭据来访问此端口。
关于如何在kubernetes的自定义安装上执行此操作有很多说明,但我不知道如何在我正在运行的docker容器中执行此操作。
答案 0 :(得分:1)
可能您需要使用Virtual Box的port forwarding功能。文档中的一个例子:
function PopulateGrids(){
var showInactive,showSubmitted;
if($("#showInactive").is(':checked')){
showInactive=true;
}
else if($("#showSubmitted").is(':checked')){
showSubmitted=true;
}
else if($("#showSubmitted").is(':checked') && $("#showInactive").is(':checked'))
{
showInactive=true;
showSubmitted=true;
}
jQuery.ajax( {
async : false,
cache : false,
url : "/application/createNewResult/details?showInactive="+encodeURI(showInactive)+"&showSubmitted="+encodeURI(showSubmitted) ,
type : 'GET',
contentType: "application/json; charset=utf-8",
dataType : 'json',
success : function() {
alert("showInactive: "+showInactive+" show submitted: "+showSubmitted);
console.log("info:",'<c:out value="${info}"/>');
if(showInactive)
$("#showInactive").prop('checked', true);
else if(showSubmitted )
$("#showSubmitted").prop('checked', true);
},
complete : function(request, status) {
if (status == undefined || status == "error" || status == "parsererror") {
alert('error in searching Invalid or submitted records: '+status);
window.location.href="/application/createNewResult/";
} else if (status != 'success'){
alert('error in searching Invalid or submitted records: '+status);
}
}
});
}
这会将所有主机接口上的端口6443转发到guest虚拟机的端口6443。也可以通过VirtualBox UI配置端口转发。
答案 1 :(得分:0)
这就像是一种解决方法,但大部分时间,我认为KubeOnDocker设置适用于不需要凭据机制的开发人员:
当您启动KubeOnDocker时,--config=/etc/kubernetes/manifests
指向master.json。如果您查看apiserver start命令,您会看到--insecure-bind-address
是127.0.0.1。如果您使用--config=/etc/kubernetes/manifests-multi
,它将指向master-multi.json,--insecure-bind-address
将为0.0.0.0
,并且可以从任何地方访问该服务器。
请注意,您需要使用manifests-multi启动etcd。
# Not tested start
docker run \
-d \
--net=host \
gcr.io/google_containers/etcd:2.2.1 \
/usr/local/bin/etcd \
--listen-client-urls=http://127.0.0.1:4001 \
--advertise-client-urls=http://127.0.0.1:4001 \
--data-dir=/var/etcd/data