使用kubeadm安装部署kubernetes集群
难点:kubeadm部署kubernetes集群 是把kubernetes的各个组件(kube-apiserver kube-controller-manager kube-scheduler kube-proxy etcd coredns)作为容器运行在docker中,安装部署相对简单很多。
由于某些不可描述的原因,国内无法从k8s.gcr.io拉取所需镜像,因此很多人无法用这种方式完成安装。
准备
每台机器2 GB或更多的RAM 2个或更多CPU
192.168.19.11 Master
192.168.19.12 Node01
192.168.19.13 Node02
关闭防火墙
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service
禁用Swap
swapoff -a
vi /etc/fstab 注释swap
让iptables查看桥接流量
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
准备安装包
设置yum仓库,阿里云镜像仓库地址:https://developer.aliyun.com/mirror/
cd /etc/yum.repos.d/
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
vi kubernetes.repo
[kubernetes]
name=Kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
enabled=1
安装
yum repolist
yum install docker-ce kubelet kubeadm kubectl
提示公钥未安装:
wget https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
rpm --import yum-key.gpg
wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
rpm --import rpm-package-key.gpg
启动docker服务
systemctl enable docker.service
systemctl start docker.service
配置阿里云加速镜像
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://******.mirror.aliyuncs.com"]
}
systemctl daemon-reload
systemctl restart docker.service
docker info
配置主节点(Master)
kubeadm 初始化Master
直接初始化会因为镜像拉取失败 而导致无法进行,需要镜像的可以私信博主
准备所需镜像
kubeadm config images list 查看所需镜像
k8s.gcr.io/kube-apiserver:v1.18.3
k8s.gcr.io/kube-controller-manager:v1.18.3
k8s.gcr.io/kube-scheduler:v1.18.3
k8s.gcr.io/kube-proxy:v1.18.3
k8s.gcr.io/pause:3.2
k8s.gcr.io/etcd:3.4.3-0
k8s.gcr.io/coredns:1.6.7
......
docker images
kubeadm init --help
kubeadm init --kubernetes-version=v1.18.3 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
使用flannel网络组件 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
看到以上信息说明安装成功
systemctl enable kubelet.service
初始化kubectl
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get cs 获取组件状态信息
kubectl get nodes 获取节点信息
可以看到 处于NotReady状态,因为没有安装网络组件
添加flannel网络附件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
注:raw.githubusercontent.com 不可访问,请手动准备kube-flannel.yml或私信博主
kubectl apply -f kube-flannel.yml
kubectl get nodes 获取节点信息
配置Node
yum install docker-ce kubelet kubeadm
启动docker服务
Node所需镜像
k8s.gcr.io/kube-proxy:v1.18.3
k8s.gcr.io/pause:3.2
quay.io/coreos/flannel:v0.12.0-amd64
启用kubelet
systemctl enable kubelet.service
kubeadm 加入节点到集群中
kubeadm join 192.168.19.11:6443 --token zc3pe7.6n3vjomutolfwvfi \
--discovery-token-ca-cert-hash sha256:348e8e47efb084f4a02db1c560e2efa5b29f74ae5a75b7909da17b53e1b51ec3
kubectl get nodes (Master节点)
来源:oschina
链接:https://my.oschina.net/u/3066276/blog/4303049