kubeadm创建集群

参考:

https://kubernetes.io/zh/docs/reference/setup-tools/kubeadm/kubeadm/

https://docs.projectcalico.org/v3.6/getting-started/kubernetes/

 

Kubeadm 是一个工具,它提供了 kubeadm init 以及 kubeadm join 这两个命令作为快速创建 kubernetes 集群的最佳实践。kubeadm 通过执行必要的操作来启动和运行一个最小可用的集群

1. 关闭防火墙:

systemctl stop firewalld & systemctl disable firewalld

2. 关闭swap:

编辑/etc/fstab,注释掉包含swap的那一行即可,重启后可永久关闭,如下所示:

/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=20ca01ff-c5eb-47bc-99a0-6527b8cb246e /boot                   xfs     defaults        0 0
# /dev/mapper/centos-swap swap 

或直接执行: 

sed -i '/ swap / s/^/#/' /etc/fstab

需要重启,该改动才会生效。

3. 关闭SeLinux:

执行:setenforce 0

4. 安装docker

添加阿里云仓库,然后安装docker

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y

启动docker:

systemctl start docker & systemctl enable docker

5. 安装k8s组件:

先配置k8s源,然后安装。

国内阿里:

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
gpgcheck=0
EOF

 

6.启动kubelet

systemctl enable kubelet && systemctl start kubelet

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

以上配置,可以首先在虚拟机中完成,然后再对虚拟机进行复制,分别充当master、node。

 

 

创建集群

1. 默认配置

kubeadm init

2. 使用calico网络

kubeadm init --pod-network-cidr=192.168.0.0/16 --kubernetes-version=v1.10.0 --apiserver-advertise-address=192.168.56.101

 --kubernetes-version可以使用kubectl version进行查看。

--apiserver-advertise-address string
 API Server将要广播的监听地址。如指定为 `0.0.0.0` 将使用缺省的网卡地址。
--apiserver-bind-port int32     缺省值: 6443
 API Server绑定的端口

创建成功后会输出如下内容:

xxx

Your Kubernetes control-plane 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/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 10.0.2.15:6443 --token 8jdtq5.0dkx1lwiczfmi9s4 \
    --discovery-token-ca-cert-hash sha256:945f8f92df6a2ff6a28a67bb81691f7f3021fe27c066754c6584bee0b618c5a0 

注:如果没有初始化成功,想要再次执行,需要先执行命令kubeadm reset

在创建集群成功之后

根据输出提示可知,还需要执行相应命令,服务才会彻底启动。

首先执行:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

然后配置网络,这里使用calico网络,参考:https://docs.projectcalico.org/v3.6/getting-started/kubernetes/

kubectl apply -f \
https://docs.projectcalico.org/v3.6/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml

 

此时使用如下命令。可以看到所有服务都启动了(可能要等一会儿)

watch kubectl get pods --all-namespaces

按Ctrl+C退出。

接下来就可以添加其他节点了。

 

出于安全考虑,默认配置下Kubernetes不会将Pod调度到Master节点。如果希望将k8s-master也当作Node使用,可以执行如下命令:

kubectl taint node k8s-master node-role.kubernetes.io/master-

 

其中k8s-master是主机节点的hostname。

或者将所有节点都作为Node使用:

kubectl taint nodes --all node-role.kubernetes.io/master-

如果要恢复Master Only状态,执行如下命令:

kubectl taint node k8s-master node-role.kubernetes.io/master=""

添加其他节点:

如果想将其他机器加入到该集群中,想加入的机器必须执行了我前面描述的那6步。

主要使用kubeadm join命令。

复制在master节点使用kubeadm init生成的命令:

kubeadm join 10.0.2.15:6443 --token 8jdtq5.0dkx1lwiczfmi9s4 \
    --discovery-token-ca-cert-hash sha256:945f8f92df6a2ff6a28a67bb81691f7f3021fe27c066754c6584bee0b618c5a0

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值