所有k8s集群节点均需安装,默认YUM源是谷歌,可以使用阿里云YUM
1. 安装 kubelet, kubeadm, kubectl
vim /etc/yum.repos.d/kubernetes.repo
#内容如下:
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
enabled=1
安装 kubeadm kubelet kubectl
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet
为了实现docker使用的cgroupdriver与kubelet使用的cgroup的一致性,建议修改如下文件内容。
vim /etc/sysconfig/kubelet
内容如下:
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
systemctl enable kubelet
2. k8s集群容器镜像准备
查看此版本的容器镜像版本
[root@master ~]# kubeadm config images list
因为以上容器镜像地址国内访问不了,在Master节点上创建一个脚本文件,执行并拉取镜像
创建image.list(文件名自定义)
vim image.list
image.list内容如下
#!/bin/bash
# download k8s 1.18.2 images
# get image-list by 'kubeadm config images list --kubernetes-version=v1.18.2'
images=(
kube-apiserver:v1.18.2
kube-controller-manager:v1.18.2
kube-scheduler:v1.18.2
kube-proxy:v1.18.2
pause:3.2
etcd:3.4.3-0
coredns:1.6.7
)
for imageName in ${images[@]};do
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
done
执镜像下载脚本
sh image.list
查看已下载镜像
[root@master /]# docker images
打包镜像,kube-proxy.tar ,pause.tar方便Node节点安装
docker save -o kube-proxy.tar k8s.gcr.io/kube-proxy:v1.18.2
docker save -o pause.tar k8s.gcr.io/pause:3.2
传输镜像
scp kube-proxy.tar pause.tar node1:/download #传输到node1自己的目录
scp kube-proxy.tar pause.tar node2:/download #传输到node2自己的目录
分别在node1,node2节点载入镜像
docker load -i kube-proxy.tar
docker load -i pause.tar
docker images #查看各节点的docker镜像
3. k8s集群初始化
在master节点操作
–kubernetes-version=v1.18.2—> k8s的版本
–pod-network-cidr=自己设定的ip
–apiserver-advertise-address:master节点的ip地址
[root@master ~]# kubeadm init --kubernetes-version=v1.18.2 \
--pod-network-cidr=172.16.0.0/16 --apiserver-advertise-address=192.168.65.133
如果初始化 Kubernetes 报错
可以 kubeadm reset
再次执行初始化命令,正常初始化
kubeadm reset
再次执行初始化命令,正常初始化
注意保持好最后的node节点加入master语句kubeadm join ,以后要在node节点上运行
我的master节点初始化后显示 如下
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 192.168.65.133:6443 --token 2pa1s5.ludg5t551auygqtr \
--discovery-token-ca-cert-hash sha256:36161dd697cf004d881f0267e2222137ce1ccb97813aa63d2e28e3d03d782bfe
4. 按照初始化成功之后的提示,准备集群管理文件
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config