如何使用kubeadm在CentOS上设置Kubernetes 1.5

时间:2020-03-05 15:31:14  来源:igfitidea点击:

新版本的Kubernetes已经出了,所以在这里我们与另一个Kubernetes文章。
与Kubernetes 1. 5,Kubeadm仍处于Alpha中,建议不要在生产中使用它,因为它仍然不支持负载平衡器。

我们将要将众所周知的在线袜子店作为演示,我们将使用NoDeport公开服务。

在所有节点上安装Kubernetes 1.5

让我们为CentOS添加Kubernetes存储库:

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
EOF

添加Repo后,我们需要关闭selinux,因为它不会与kubernetes一起玩。
暂时关闭它,键入

setenforce 0

要在重新启动后持续,请使用nano编辑SELINUX配置文件:

nano /etc/selinux/config

并确保Selinux Line设置为允许或者禁用:

SELINUX=disabled

保存文件,我们可以继续安装所需的包。

yum install docker kubelet kubeadm kubectl kubernetes-cni

要在启动时启用Docker自动启动,请运行此命令:

systemctl enable docker

并立即启动它,运行以下内容。

systemctl start docker

接下来让kubelet这样做

systemctl enable kubelet
systemctl start kubelet

设置群集

我们需要做的第一件事是决定我们新群集的主人。
如果显示了所有节点,则显示如上上面,接下来我们运行指定的主节点以下命令。

kubeadm init

请注意,我们无法运行此命令两次,我们需要在第二次运行之前拆除群集。
该输出与此类似:

[root@centos-01 kubernetes]# kubeadm init
[kubeadm] WARNING: kubeadm is in alpha, please do not use it for production clusters.
[preflight] Running pre-flight checks
[preflight] WARNING: firewalld is active, please ensure ports [6443 9898 10250] are open or your cluster Jan not function correctly
[init] Using Kubernetes version: v1.5.1
[tokens] Generated token: "9a6b48.b4011ffeeb237381"
[certificates] Generated Certificate Authority key and certificate.
[certificates] Generated API Server key and certificate
[certificates] Generated Service Account signing keys
[certificates] Created keys and certificates in "/etc/kubernetes/pki"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
[apiclient] Created API client, waiting for the control plane to become ready
[apiclient] All control plane components are healthy after 105.821991 seconds
[apiclient] Waiting for at least one node to register and become ready
[apiclient] First node is ready after 4.505809 seconds
[apiclient] Creating a test deployment
[apiclient] Test deployment succeeded
[token-discovery] Created the kube-discovery deployment, waiting for it to become ready
[token-discovery] kube-discovery is ready after 68.003359 seconds
[addons] Created essential addon: kube-proxy
[addons] Created essential addon: kube-dns
Your Kubernetes master has initialized successfully!
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
http://kubernetes.io/docs/admin/addons/
You can now join any number of machines by running the following on each node:
kubeadm join --token=9a6b48.b4011ffeeb237381 45.55.128.42

安装POD网络并将节点添加到群集

在上面的部分中,我们初始化了群集主机,我们将使用我们将用于添加节点的令牌的最后一行命令。
但在我们这样做之前,我们需要安装POD网络。

kubectl apply -f https://git.io/weave-kube

有很多方法可以拥有Pods网络,但高于一个是最简单的。
它使用容器网络接口或者CNI,这是Linux上的网络容器的建议标准。

接下来,我们可以将节点添加到群集中,并在所有节点上运行此命令

kubeadm join --token=bb6fc2.be0345f5b02a32a0 45.55.128.42

令牌被消失,因此我们无法将节点添加到我的群集。
下一步允许允许窗口在主机上运行,不仅在节点上运行。

kubectl taint nodes --all dedicated

在此之后,我们可以检查节点以查看全部是否在线。

kubectl get nodes

安装微服务示例

我们将使用简单的微服务器来测试我们的群集。
它是袜子的在线商店。

首先,我们将添加命名空间袜子商店

kubectl create namespace sock-shop

然后我们创建服务

kubectl apply -n sock-shop -f "https://github.com/microservices-demo/microservices-demo/blob/master/deploy/kubernetes/complete-demo.yaml?raw=true"

在此之后,我们需要等待一些时间来创建Docker,然后我们可以尝试访问新。
为了访问它,我们必须知道其地址。
让我们检查服务

kubectl describe svc front-end -n sock-shop

它会给我们类似于此的输出

Name: front-end
Namespace: sock-shop
Labels: name=front-end
Selector: name=front-end
Type: NodePort
IP: 10.104.11.202
Port: <unset> 80/TCP
NodePort: <unset> 31500/TCP
Endpoints: 10.32.0.4:8079
Session Affinity: None
No events.

粗体线路被我突出显示,因为我们需要服务的端口号。
我们需要将端口号与我们一个节点的地址组合,我们将到达。