这期内容当中小编将会给大家带来有关怎样进行Kubernetes 集群搭建,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
yum安装需要的组件,我这里指定了具体的版本,我用的版本比较老,不过如果你是第一次用,问题不是很大,如果是大佬的话就不要喷我了~~~安装
yum -y install kubeadm-1.11.1 yum -y install kubectl-1.11.1 yum -y install kubelet-1.11.1 yum -y install kubernetes-cni-0.6.0yum -y install docker-ce-17.03.0.ce-1.el7.centos
设置docker启动
systemctl enable docker systemctl start docker systemctl enable kubelet.service systemctl start kubelet
这里就是比较艰难的部分了,网上的处理办法大同小异在这里给大家写一下我用的。
kubernetes是Google的,他的镜像托管在Google云上,国内下载比较坎坷,到这个地址去下载https://github.com/anjia0532/gcr.io_mirror 脚本在这里
vim pullimages.sh #这里指定了具体的版本,如果你不是这个版本的需要修改脚本呀~~
#!/bin/bashimages=(kube-proxy-amd64:v1.11.1 kube-scheduler-amd64:v1.11.1 kube-controller-manager-amd64:v1.11.1 kube-apiserver-amd64:v1.11.1 etcd-amd64:3.2.18 coredns:1.1.3 pause:3.1 )for imageName in ${images[@]} ; dodocker pull anjia0532/google-containers.$imageNamedocker tag anjia0532/google-containers.$imageName k8s.gcr.io/$imageNamedocker rmi anjia0532/google-containers.$imageNamedone
其实呢kubeadm是可以一键部署Master节点的,不过呢为了给大家演示一下集群的搭建,我在这里写了一个kubeadm.yaml
apiVersion: kubeadm.k8s.io/v1alpha1kind: MasterConfigurationcontrollerManagerExtraArgs: horizontal-pod-autoscaler-use-rest-clients: "true" horizontal-pod-autoscaler-sync-period: "10s" node-monitor-grace-period: "10s"apiServerExtraArgs: runtime-config: "api/all=true"kubernetesVersion: "v1.11.1"
这里将horizontal-pod-autoscaler-use-rest-clients: "true",这意味者,将来部署的kube-controlller-manger能够使用自定义资源进行自动水平拓展。
部署kunernetes Master节点
kubeadm init --config kubeadm.yaml
这里会生成一大串代码,我摘录一部分放在这里供大家参考
[init] using Kubernetes version: v1.11.1[preflight] running pre-flight checks ................. ................. ................. Your Kubernetes master has initialized successfully! To start using your cluster, you need to run the following as a regular user: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config You should now deploy a pod network to the cluster. Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: https://kubernetes.io/docs/concepts/cluster-administration/addons/You can now join any number of machines by running the following on each nodeas root: kubeadm join 192.168.72.132:6443 --token q1nck1.4znr09ayrj6xpsdw --discovery-token-ca-cert-hash sha256:095e199243fad6ee350beb9869942f54ee4074cd5bcef1222a2cca712b8b4878
这个kubeadm join 命令是来给Master节点添加工作节点的 命令,当然我这里是单节点肯定是用不上了,不过我还是想给大家解释一下,你们知道就好。
配置安全配置文件的存放目录,这个在上述的代码中有提到,各位可以详细看一下
mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/configchown $(id -u):$(id -g) $HOME/.kube/config
为啥要写这个呢?原因是kubernetes集群默认需要加密方式访问,这几条命令的作用在于将刚部署集群的配置文件放在当前用户的.kube目录下啊,kubectl默认使用这个目录下的授权信息访问kubernetes集群。
查看节点状态
[root@localhost yum.repos.d]# kubectl get nodesNAME STATUS ROLES AGE VERSIONlocalhost.localdomain NotReady master 6m v1.11.1
我这里部署的状态是NotReady,是因为我没有安装网络组件
安装网络插件
kubectl apply -f https://git.io/weave-kube-1.6
部署完成后我们可以通过kubectl重新检查Pod状态
[root@localhost yum.repos.d]# kubectl get pods -n kube-system NAME READY STATUS RESTARTS AGE coredns-78fcdf6894-8w8dx 1/1 Running 0 11m coredns-78fcdf6894-w9sk2 1/1 Running 0 11m etcd-localhost.localdomain 1/1 Running 0 10m kube-apiserver-localhost.localdomain 1/1 Running 0 10m kube-controller-manager-localhost.localdomain 1/1 Running 0 10m kube-proxy-cpxmx 1/1 Running 0 11m kube-scheduler-localhost.localdomain 1/1 Running 0 10m weave-net-pt2l7 2/2 Running 0 23s
这里可以看到我部署的Pod都启动成功了,如果你也能看到这些,那么恭喜你,至此kubernetes Master节点部署完成咯。
上述就是小编为大家分享的怎样进行Kubernetes 集群搭建了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。