所有服务器节点安装 Docker/kubeadm/kubelet/kubectl
。
Kubernetes 默认容器运行环境是Docker,因此首先需要安装Docker。
更新 docker 的 yum 源
yum install wget -y
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
安装指定版本的docker
yum install docker-ce-19.03.13 -y
yum install docker -y (这个安装的Docker版本偏旧) 1.13.x
配置加速器加速下载 (https://cr.console.aliyun.com/)
/etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
https://gg3gwnry.mirror.aliyuncs.com
然后执行:
systemctl enable docker.service
不然会提示警告。
那么接下来需要搭建:kubeadm、kubelet、kubectl
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
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
到时候下载 K8s 的相关组件才能找到下载源。
yum install kubelet-1.19.4 kubeadm-1.19.4 kubectl-1.19.4 -y
然后执行
systemctl enable kubelet.service
不然会提示警告。
查看有没有安装:
yum list installed | grep kubelet
yum list installed | grep kubeadm
yum list installed | grep kubectl
查看安装的版本 :kubelet --version
Kubelet :运行在 cluster 所有节点上,负责启动POD和容器
Kubeadm :用于初始化 cluster 的一个工具
Kubectl :Kubectl 是 kubenetes 命令行工具,通过 kubectl 可以部署和管理应用,查看各种资源,创建,
删除和更新组件。
此时应该重启一下 centos。
kubeadm init --apiserver-advertise-address=192.168.172.134 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.19.4 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
此命令在master机器上执行
执行报错:
解决 :重启一下 centos ,然后再执行上面的 kubeadm init
命令。
说明:
service-cidr 的选取不能和PodCIDR及本机网络有重叠或者冲突,一般可以选择一个本机网络和PodCIDR都没有用到的私网地址段,比如PODCIDR使用10.244.0.0/16, 那么service cidr可以选择10.96.0.0/12,网络无重叠冲突即可。
接下来在master机器上执行:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get nodes
接下来把 node 节点加入 Kubernetes master 中,在 Node 机器上执行。
向集群添加新节点,执行的命令就是 kubeadm init 最后输出的 kubeadm join 命令:
kubeadm join 192.168.172.132:6443 --token wa5bif.zfuvbesevdfvf4of \--discovery-token-ca-cert-hash sha256:87cf5828d54dd80da13c4b57c57360370ea0267a7cc3991989ca3006cf3e44d8
下载 kube-flannel.yml 文件
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
应用 kube-flannel.yml 文件得到运行时容器
kubectl apply -f kube-flannel.yml
(在master机器上执行)\
然后查看节点状态:kubectl get nodes
(在master机器上执行)
说明还没有就绪,需要等一会儿,然后节点就就绪了
查看运行时容器pod (一个pod里面运行了多个docker容器)
kubectl get pods -n kube-system