使用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=MasterIP地址

   --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

posted @ 2021-03-04 16:19  天水星梦  阅读(203)  评论(0)    收藏  举报