在开始之前,部署Kubernetes集群机器需要满足以下几个条件:

此处提供了安装虚拟机的一篇教程
安装参考链接
https://www.runoob.com/w3cnote/vmware-install-centos7.html
注:以下命令有的是需要在不同的机器去执行,有的是在所有的机器执行,请注意区分
2、安装之后系统的前置要求
2.1 关闭防火墙,三台机器全关闭
systemctl stop firewalld
2.2、关闭selinux,三台机器全关闭
sed -i 's/enforcing/disabled/' /etc/selinux/config
2.3、关闭swap ,三台机器全关闭
swapoff -a
2.4、设置主机名
hostnamectl set-hostname 主机名,三个主机名分别设置成k8s-master,k8s-node1,k8s-node2
2.5、在master添加hosts
cat /etc/hosts
自己的IP k8s-master
自己的IP k8s-node1
自己的IP k8s-node2
2.6 将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
2.7执行以下命令让设置生效
sysctl --system
3、安装docker
3.1 安装docker依赖包
yum install -y yum-utils
3.2因为某些原因可能访问不到国外仓库或者速度较慢,此处设置为阿里的镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.3安装docker服务
yum install docker-ce docker-ce-cli containerd.io -y
3.4启动docker服务
systemctl start docker
3.5查看docker服务是否正常启动成功
systemctl status docker

出现如图则表示docker服务成功启动。
3.6 添加阿里云YUM软件源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
EOF
3.7 安装kubeadm、kubelet和kubectl 由于版本更新频繁 此处指定版本安装
yum install -y kubeadm-1.19.0 kubelet-1.19.0 kubectl-1.19.0
此处执行命令以后如果出现以下两种错误:
错误一:
Error: Package: kubelet-1.19.2-0.x86_64 (kubernetes)
Requires: conntrack
错误二:
Error: Package: kubelet-1.14.2-0.x86_64 (kubernetes)
Requires: kubernetes-cni = 0.7.5
尝试一下解决方案:下载yum源,安装依赖包
cd /etc/yum.repos.d/
wget http://mirrors.aliyun.com/repo/epel-7.repo
wget http://mirrors.aliyun.com/repo/Centos-7.repo
yum install epel-release
yum install conntrack-tools
3.8成功后启动k8s服务
systemctl enable kubelet
注:以上操作在三台机器都需要执行成功
4.在master节点上部署kubetnets 注:该操作只需要在master上面执行
kubeadm init --kubernetes-version=1.19.0 --apiserver-advertise-address=master的ip --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
如果看到如下successfully,那么恭喜你成功啦

4.1创建文件夹将admin.conf文件 copy到对应的位置
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
scp -p /etc/kubernetes/admin.conf 【node1 OR node2】:/etc/kubernetes/admin.conf
4.2 接下来将两台node加入到集群中,分别在node1根node2执行刚刚 kubeadm init成功后下面打印的命令:

4.3执行完命令后,在master节点中执行命令查看是否如图:
kubectl get nodes

如上图则表示成功了,如果报错:
The connection to the server localhost:8080 was refused - did you specify the right host or port?
解决方法:
4.3.1:将主节点(master)中的“/etc/kubernetes/admin.conf”文件拷贝到两个node节点相同目录下,如图所示:

4.3.2:配置环境变量
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
4.3.3:让配置立即生效
source ~/.bash_profile
5.安装部署CNI网络插件
5.1:在master机器上执行命令
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
5.2:成功后验证一下
kubectl get pods -n kube-system
如果出现如下则恭喜你再一次成功啦

到此k8s的安装部署基本结束了,剩下的我们来
6 验证该集群是否可用
6.1 在kubenetes集群中创建一个pod 创建nginx
kubectl create deployment nginx --image=nginx
6.2 暴露Nginx端口
kubectl expose deployment nginx --port=80 --type=NodePort
6.3 查看Nginx端口
kubectl get pod,svc
如图所示:31669就是Nginx的访问端口
6.4任意一个节点的ip加上端口访问看是否成功

如上图则表示该集群搭建成功了。
以上的步骤都是我自己在本地实际操作过的,可能又些许借鉴的意义,但是可能你在自己安装过程中可能会遇到各种奇怪的问题,可以自己查找资料解决也可以一起沟通解决。
友情链接:k8s详细教程-调整版/k8s详细教程.md · yooome/LearningNotes - Gitee.com
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI
在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc
我的Rails站点使用了一个确实不是很好的gem。每次我需要做一些新的事情时,我最终不得不花费与向实际Rails项目添加代码一样多的时间来为gem添加功能。但我不介意,我将我的Gemfile设置为指向我的gem的GitHub分支(我尝试提交PR,但维护者似乎已经下台)。问题是我真的没有找到一种合理的方法来测试我添加到gem的新东西。在railsc中测试它会特别好,但我能想到的唯一方法是a)更改~/.rvm/gems/.../foo。rb,这看起来不对或者b)升级版本,推送到Github,然后运行bundleup,这除了耗时之外显然是一场灾难,因为我不确定我所做的promise是否正
我希望访问我机器上的所有HTTP流量(我的Windows机器-不是服务器)。据我了解,拥有一个本地代理是所有流量路线的必经之路。我一直在谷歌搜索但未能找到任何资源(关于Ruby)来帮助我。非常感谢任何提示或链接。 最佳答案 WEBrick中有一个HTTP代理(Rubystdlib的一部分)和here's一个实现示例。如果你喜欢生活在边缘,还有em-proxy伊利亚·格里戈里克。这postIlya暗示它似乎确实需要一些调整来解决您的问题。 关于ruby-如何捕获所有HTTP流量(本地代理)
我正在尝试找出一种方法来显示来自不在RAILS_ROOT下(在RedHat或Ubuntu环境中)的已安装文件系统的图像。我不想使用符号链接(symboliclink),因为这个应用程序实际上是通过Tomcat部署的,而当我关闭Tomcat时,Tomcat会尝试跟随符号链接(symboliclink)并删除挂载中的所有图像。由于这些文件的数量和大小,将图像放在public/images下也不是一种选择。我查看了send_file,但它只会显示一张图片。我需要在一个格式良好的页面中显示6个请求的图像。由于膨胀,我宁愿不使用Base64编码,但我不知道如何将图像数据与呈现的页面一起传递下去。
我刚刚在我的Ubuntu9.10服务器上安装了TeamBox。我使用提供的服务器脚本在端口3000上启动并运行它。它的运行速度非常慢,从另一台计算机连接时每个HTTP请求最多需要30秒。我使用链接从shell加载TeamBox,一点也不花时间。然后我设置了一个SSH隧道,它再次运行得非常快。我通过此服务器上的apache以及SAMBA等运行了大约30个虚拟主机,没有任何问题。我该如何解决这个问题? 最佳答案 我的redmine(ruby,webrick)太慢了。现在我解决了这个问题:apt-getinstallmongrelruby
我刚刚在本地设置了我的第一个Jekyll项目。我已经让服务器运行,但我忘了使用自动标志。所以现在我想停止服务器并使用标志重新启动。但是,在我启动服务器后的命令行中,我没有得到新的提示,所以我无法输入任何新命令。我不太习惯命令行,所以我真的很感激知道我应该做什么!我正在使用MacOSX和terminal.app,如果有区别的话! 最佳答案 psaux|grepjekyll|awk'{print$2}'|xargskill-9 关于ruby-如何停止jekyll本地服务器,我们在StackO
我相信我对这个问题有一个很好的答案,但我想确保ruby-philes没有更好的方法来做到这一点。基本上,给定一个输入字符串,我想在适当的情况下将该字符串转换为整数,或在适当的情况下将其转换为float。否则,只返回字符串。我会在下面发布我的答案,但我想知道是否有更好的方法。例如:to_f_or_i_or_s("0523.49")#=>523.49to_f_or_i_or_s("0000029")#=>29to_f_or_i_or_s("kittens")#=>"kittens" 最佳答案 我会尽可能避免在Ruby中使用正则表达式