Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何与流浪汉建立一个当地的Kubernetes_Python_Kubernetes_Namespaces_Vagrant_Kubeadm - Fatal编程技术网

Python 如何与流浪汉建立一个当地的Kubernetes

Python 如何与流浪汉建立一个当地的Kubernetes,python,kubernetes,namespaces,vagrant,kubeadm,Python,Kubernetes,Namespaces,Vagrant,Kubeadm,作为一名开发人员,我希望使用kubeadm自动启动本地Kubernetes开发环境。我希望创建运行“vagrant up”的环境,然后我必须能够登录到vagrant VM并运行kubectl命令 我想包括一个简单的Python脚本,列出所有名称空间中所有正在运行的pod。在“vagrant up或provision”过程结束时调用此脚本以验证Kubernetes的安装 最后,我想将脚本上载到GitHub。我有一个从我的Vagrant文件调用的引导脚本,例如: config.vm.provisio

作为一名开发人员,我希望使用kubeadm自动启动本地Kubernetes开发环境。我希望创建运行“vagrant up”的环境,然后我必须能够登录到vagrant VM并运行kubectl命令

我想包括一个简单的Python脚本,列出所有名称空间中所有正在运行的pod。在“vagrant up或provision”过程结束时调用此脚本以验证Kubernetes的安装

最后,我想将脚本上载到GitHub。

我有一个从我的Vagrant文件调用的引导脚本,例如:

config.vm.provision :shell, path:./bootstrap.sh, privileged: false, :args => arguments_for_bootstrap
### DOCKER ###
sudo apt-get update
# Install packages to allow apt to use a repository over HTTPS
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
# Add Dockers official GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# Set up the stable repository
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# Update
sudo apt-get update
# Install docker-ce
sudo apt-get install -y docker-ce=18.06.3~ce~3-0~ubuntu
# Add user to group 'docker'
sudo usermod -aG docker $USER

### KUBECTL ###
curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/v1.14.8/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/

### MINIKUBE ###
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v1.4.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
# Start
sudo minikube start --vm-driver=none
# Configure permissions
[ -d /root/.kube ] && sudo mv /root/.kube $HOME/.kube # this will write over any previous configuration
sudo chown -R $USER $HOME/.kube
sudo chgrp -R $USER $HOME/.kube
[ -d /root/.minikube ] && sudo mv /root/.minikube $HOME/.minikube # this will write over any previous configuration
sudo chown -R $USER $HOME/.minikube
sudo chgrp -R $USER $HOME/.minikube
在这样的引导脚本中,我安装了运行kubernetes工具所需的软件。由于这是一台流浪机器,我建议使用独立的minikube“集群”。如果对容器使用docker技术,我会安装docker、kubectl和minikube等,可能还会安装helm orchestrator等其他东西

例如:

config.vm.provision :shell, path:./bootstrap.sh, privileged: false, :args => arguments_for_bootstrap
### DOCKER ###
sudo apt-get update
# Install packages to allow apt to use a repository over HTTPS
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
# Add Dockers official GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# Set up the stable repository
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# Update
sudo apt-get update
# Install docker-ce
sudo apt-get install -y docker-ce=18.06.3~ce~3-0~ubuntu
# Add user to group 'docker'
sudo usermod -aG docker $USER

### KUBECTL ###
curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/v1.14.8/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/

### MINIKUBE ###
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v1.4.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
# Start
sudo minikube start --vm-driver=none
# Configure permissions
[ -d /root/.kube ] && sudo mv /root/.kube $HOME/.kube # this will write over any previous configuration
sudo chown -R $USER $HOME/.kube
sudo chgrp -R $USER $HOME/.kube
[ -d /root/.minikube ] && sudo mv /root/.minikube $HOME/.minikube # this will write over any previous configuration
sudo chown -R $USER $HOME/.minikube
sudo chgrp -R $USER $HOME/.minikube
最后,我将添加准备脚本来执行您需要的任何检查。如果您喜欢python脚本,可以使用kubectl api for python(即),但我建议直接使用bash脚本:

kubectl get pod --all-namespaces 
提供任务的最佳方式是使用Scriptlet,您只需授予+x权限即可启用/禁用它:

    @files = Dir.glob(provision.d + "/*").sort
    @files.each do |file|
      next if file == '.' or file == '..'
      next if not File.stat(file).executable?
      config.vm.provision :shell, path:file, privileged: false
    end
然后,您将在本地拥有一组scriptlet,以按特定顺序执行操作:

provision.d/K01_helm_install_my_app
...
provision.d/K30_check_k8s_health

关于你的第三个问题,我假设有一个GITHUB帐号,重建你的开发环境所需的所有脚本都是你的vGraveFrm,BooTrasp.Script脚本,和.Deopy.d目录,里面有Script脚本来完成你在VaveRoad上所做的所有步骤。