使用kubeadm部署Kubernetes
Kubernetes安装部署(Kubeadm)
一 、安装环境
使用了两台虚拟机,均已修改网卡设置,且可以上网。
虚拟机1(Master):10.0.0.80 Centos7
虚拟机2(Node):10.0.0.81 Centos7
二 、先决条件
在所有服务器上执行
1.关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
2. 关闭Selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
3.关闭swap
swapoff -a #临时关闭,重启后失效
sed -ri 's/.*swap.*/#&/' /etc/fstab #永久关闭
4.修改主机名称(虚拟机1设置为master,虚拟机2设置为node)
sudo hostnamectl set-hostname master
5. 添加主机名与IP对应关系
vi /etc/hosts
10.0.0.80 master
10.0.0.81 node
6.将桥接的ipv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl –system
三 在所有节点安装 Docker/kubeadm/kubelet/kubectl
1. 安装Docker(略)
2. 安装kubeadm,kublet,kubectl
(1)添加阿里云源
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
(2)安装kubeadm,kubelet,kubectl
yum install -y kubelet kubeadm kubectl #安装最新版本
yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0 #安装指定版本
(3)设置开机自启
systemctl enable kubectl
四 初始化Kubernetes Master
此处所有操作均在10.0.0.80 Master节点下执行
下载所需镜像 本文使用 1.20.2

初始化master节点
kubeadm init \
--apiserver-advertise-address=10.0.0.80 \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers/ \
--kubernetes-version v1.20.2 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
注: --apiserver-advertise-address=Master的IP地址
--kubernetes-version v1.20.2 指定kubernetes版本
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16 此项为划分pod网络地址
初始化完成后执行
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这行的token和hash

初始化若出现

执行:
echo "sysctl -w net.ipv4.ip_forward=1" >> /etc/rc.d/rc.local \
&& echo "sysctl -p" >> /etc/rc.d/rc.local \
&& chmod +x /etc/rc.d/rc.local \
&& ll /etc/rc.d/rc.local \
&& cat /proc/sys/net/ipv4/ip_forward
重启后生效
五 安装Pod网络插件(CNI)
kubectl apply -fhttps://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
若不能访问 可使用这个
kubectl apply -f kube-flannel.yml
六 node加入集群
在 node节点上执行
kubeadm join 10.0.0.80:6443 --token iz96vy.f5ukew9geeome5is \ --discovery-token-ca-cert-hash sha256:72b689426bfc34512294c29b39ea3b2af3a94e39f62c4434f3a49f16d51a1382
成功加入后

查看node:
kubectl get node
STAUS显示为Ready则表示正常

七 部署Dashboard
修改kubenetes-dashboard.yaml

执行kubernetes-dashboard.yaml 文件
kubectl apply -f kubernetes-dashboard.yaml
查看暴露的端口
kubectl get pods,svc -n kube-system
访问 Dashboard的web界面
访问地址:https://NodeIP:30001

生成token
创建service account并绑定默认cluster-admin管理员集群角色:【依次执行】
kubectl create serviceaccount dashboard-admin -n kube-system
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')

复制粘贴token 进入dashboard

Kubernetes v1.20 官方中文文档:https://www.bookstack.cn/read/kubernetes-1.20-zh/823eb1389d87364b.md

浙公网安备 33010602011771号