简介

使用 kubeadm 快速创建 k8s 集群。部署前要先安装好 docker。

安装部署

可以使用国内的镜像源,这里以阿里云为例

添加 yum 源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

关闭 selinux

setenforce 0

安装服务

yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet

下载需要的镜像

可以使用阿里云的镜像

kubeadm config images pull --image-repository=registry.aliyuncs.com/google_containers

初始化 master

生成默认配置文件

kubeadm config print init-defaults > init.yaml

替换 imageRepository: k8s.gcr.io => imageRepository: registry.aliyuncs.com/google_containers

替换 IP advertiseAddress: 192.168.57.70

初始化

kubeadm init --config=init.yaml

等待一段时间后,Kubernetes 的 Master 安装成功,就会有下面的提示,直接复制运行即可。

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

...

kubeadm join 192.168.57.70:6443 --token sq8lj9.25yy39wfjkllcz27     --discovery-token-ca-cert-hash sha256:a8e7da3e05c0e6613058a16c17ebacfb68e5e2ea570a97ce1706a704d88de752

前面几行,是设置用户配置文件的,方便命令执行。kubeadm join 是用于把 Node 加入到集群里面。

查看集群配置

kubeadm config view:查看当前集群中的配置值

node 部署

node 节点的操作,跟 master 上初始化操作之前的动作是一样的。

安装完启动服务以后,就可以直接执行命令加入集群即可。

kubeadm join 192.168.57.70:6443 --token sq8lj9.25yy39wfjkllcz27     --discovery-token-ca-cert-hash sha256:a8e7da3e05c0e6613058a16c17ebacfb68e5e2ea570a97ce1706a704d88de752

网络插件安装

wget -c -t 0 https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

kubectl apply -f kube-flannel.yml

查看所有的 pods 是否正常运行

kubectl get pods --all-namespaces
NAMESPACE     NAME                                           READY   STATUS    RESTARTS   AGE
kube-system   coredns-9d85f5447-fkjzt                        1/1     Running   1          23m
kube-system   coredns-9d85f5447-tkzvw                        1/1     Running   1          23m
kube-system   etcd-centos70.example.com                      1/1     Running   1          23m
kube-system   kube-apiserver-centos70.example.com            1/1     Running   2          23m
kube-system   kube-controller-manager-centos70.example.com   1/1     Running   3          23m
kube-system   kube-flannel-ds-amd64-lftvj                    1/1     Running   2          23m
kube-system   kube-flannel-ds-amd64-vhmnn                    1/1     Running   1          23m
kube-system   kube-proxy-7zgwg                               1/1     Running   1          23m
kube-system   kube-proxy-bhjhz                               1/1     Running   1          23m
kube-system   kube-scheduler-centos70.example.com            1/1     Running   2          23m