我正试着从我的工作站到达我的k8s主人.我可以从局域网中访问主服务器,但不能从我的工作站访问.错误消息是:
% kubectl --context=employee-context get pods
Unable to connect to the server: x509: certificate is valid for 10.96.0.1, 10.161.233.80, not 114.215.201.87
Run Code Online (Sandbox Code Playgroud)
如何在证书中添加114.215.201.87?我是否需要删除旧的群集ca.crt,重新创建它,重新启动整个群集然后重新签名客户端证书?我已经使用kubeadm部署了我的集群,我不确定如何手动执行这些步骤.
在kubernetes中,我可以使用PersistentVolumeClaim创建一些存储空间,稍后我可以将其存储在某个容器中.
但是,如果容器中的用户不是root用户,则该用户将无法访问该目录,因为它由root拥有.
访问此类卷的正确方法是什么?(在创建和安装该卷时,我没有找到任何用户/权限选项.)
我正在实现一个可以使节点从 kubernetes 集群脱机/联机的功能。
运行时kubectl delete node $nodename,如何将此节点读入集群?
据说如果使用 APIPOST /api/v1/nodes会导致节点状态Not ready。有没有办法将删除的节点读入集群?
我如何获取从Pod内部生成当前Pod的Kubernetes部署/作业名称?
我正在GCE上运行一个三节点群集。我想耗尽一个节点并删除基础虚拟机。
kubectl drain命令的文档说:
Once it returns (without giving an error), you can power down the node (or equivalently, if on a cloud platform, delete the virtual machine backing the node)
我执行以下命令:
获取节点
$ kl get nodes
NAME STATUS AGE
gke-jcluster-default-pool-9cc4e660-6q21 Ready 43m
gke-jcluster-default-pool-9cc4e660-rx9p Ready 6m
gke-jcluster-default-pool-9cc4e660-xr4z Ready 23h
Run Code Online (Sandbox Code Playgroud)排水节点rx9p。
$ kl drain gke-jcluster-default-pool-9cc4e660-rx9p --force
node "gke-jcluster-default-pool-9cc4e660-rx9p" cordoned
WARNING: Deleting pods not managed by ReplicationController, ReplicaSet, Job, DaemonSet or StatefulSet: fluentd-cloud-logging-gke-jcluster-default-pool-9cc4e660-rx9p, kube-proxy-gke-jcluster-default-pool-9cc4e660-rx9p
node "gke-jcluster-default-pool-9cc4e660-rx9p" drained
Run Code Online (Sandbox Code Playgroud)删除gcloud VM。
$ …Run Code Online (Sandbox Code Playgroud)我想在容器的MySQL上设置初始数据.在docker-compose.yml中,此类代码可以在运行容器时创建初始数据.
volumes:
- db:/var/lib/mysql
- "./docker/mysql/conf.d:/etc/mysql/conf.d"
- "./docker/mysql/init.d:/docker-entrypoint-initdb.d"
Run Code Online (Sandbox Code Playgroud)
但是,如何在运行时在Kubernetes上创建初始数据?
我在kubernetes集群上运行Spark 2.3作业
kubectl版本
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.3", GitCommit:"d2835416544f298c919e2ead3be3d0864b52323b", GitTreeState:"clean", BuildDate:"2018-02-09T21:51:06Z", GoVersion:"go1.9.4", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.3", GitCommit:"f0efb3cb883751c5ffdbe6d515f3cb4fbe7b7acd", GitTreeState:"clean", BuildDate:"2017-11-08T18:27:48Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Run Code Online (Sandbox Code Playgroud)
当我在k8s master上运行spark submit时,驱动程序pod停留在Waiting:PodInitializing状态.
如果我几乎平行地提交工作,即一个接一个地提交5个工作,就会发生这种情况.
我在运行驱动程序pod的节点上尝试了kubectl describe节点这就是我得到的,我确实看到资源有过度提交但是我希望kubernetes调度程序不安排节点中的资源是否过度提交或节点是否在未就绪状态,在这种情况下节点处于就绪状态但是如果节点处于未就绪状态,我会观察到相同的行为.
Name: **********
Roles: worker
Labels: beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
kubernetes.io/hostname=****
node-role.kubernetes.io/worker=true
Annotations: node.alpha.kubernetes.io/ttl=0
volumes.kubernetes.io/controller-managed-attach-detach=true
Taints: <none>
CreationTimestamp: Tue, 31 Jul 2018 09:59:24 -0400
Conditions:
Type Status LastHeartbeatTime LastTransitionTime Reason Message
---- ------ ----------------- ------------------ ------ -------
OutOfDisk False Tue, …Run Code Online (Sandbox Code Playgroud) 是否可以创建一个节点池,调度程序将默认忽略该节点池,但节点选择器可以将其作为目标?
我有一个托管在某个服务器上的 php 文件,现在我想通过curl 访问 URL 的输出,如下所示:
curl -s http://ankur.serve.qa.vdopia.com/getTag.php?type=vanilla&tag=master
[1] 81246
**vanilla4.9.8-2**
Run Code Online (Sandbox Code Playgroud)
我得到了很多东西,但实际的输出是 vanilla4.9.8-2 来得有点晚,当我在输入curl命令后按下回车键时,它只会向我显示进程ID并进入后台。如何在不后台执行命令的情况下获得输出。
这是php的完整代码:
header('Content-type: text/plain');
$type = $_GET['type'];
$tag = $_GET['tag'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if($type=='portal')
{
if($tag=='' || $tag=='master')
{
curl_setopt($ch, CURLOPT_URL, 'http://portal.vdopia.com/version.txt?'.uniqid());
$output = curl_exec($ch);
curl_close($ch);
echo $output;
}
}
else if ($type=='vanilla')
{
if($tag=='' || $tag=='master')
{
echo 'checking';
curl_setopt($ch, CURLOPT_URL, 'http://serve.vdopia.com/version.txt?'.uniqid());
$output = curl_exec($ch);
curl_close($ch);
echo $output;
}
}
exit();
Run Code Online (Sandbox Code Playgroud) 希望有人可以帮助我解决似乎是权限错误的问题。我正在尝试使用官方的Elasticsearch Docker镜像启动一个3节点的Elasticsearch集群。启动容器时,我在/ usr / share / elasticsearch / data / nodes上从Elasticsearch收到“拒绝访问”错误,因此我尝试添加命令以使Elasticsearch成为/ usr / share / elasticsearch / data的所有者。但是当我包含chown命令时,我得到了这些错误:
chown: cannot read directory '/usr/share/elasticsearch/data/lost+found': Permission denied
chown: changing ownership of '/usr/share/elasticsearch/data': Operation not permitted
Run Code Online (Sandbox Code Playgroud)
这是我的statefulset yaml文件:
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: esnode
spec:
serviceName: elasticsearch-transport
replicas: 3
template:
metadata:
labels:
app: evo-pro-cluster
spec:
initContainers:
- name: init-sysctl
image: busybox
imagePullPolicy: IfNotPresent
command: ["sysctl", "-w", "vm.max_map_count=262144"]
securityContext:
privileged: true
containers:
- name: elasticsearch
securityContext:
privileged: true
capabilities:
add:
- IPC_LOCK
- …Run Code Online (Sandbox Code Playgroud) 我尝试使用 kops 在 aws 上创建 k8s 集群。
使用默认定义创建集群后,我看到已经创建了一个 LoadBalance。
apiVersion: kops/v1alpha2
kind: Cluster
metadata:
name: bungee.staging.k8s.local
spec:
api:
loadBalancer:
type: Public
....
Run Code Online (Sandbox Code Playgroud)
我只是想知道创建 LoadBalancer 和集群的原因。
欣赏 !
kubernetes ×11
docker ×2
kubeadm ×2
apache-spark ×1
kops ×1
mysql ×1
permissions ×1
php ×1
terminal ×1