• 欢迎访问显哥博客,本网站纯属学习技术,绝无商业用途,欢迎小伙伴们共同学习!研究技术!QQ:52249909 加我QQ
  • 世界75亿人,这么小的概率,能认识你,是我一生的幸运,不妨加个QQ接触一下:52249909 加我QQ

Centos7.5使用kubeadm快速部署K8s集群【显哥出品,必为精品】

K8S lixian 6个月前 (04-09) 731次浏览 0个评论 扫描二维码
文章目录[隐藏]

环境准备

注意:master的CPU核数至少需要2核

节点 IP 系统配置
master 192.168.1.131 Centos7.5 || 2c || 2g
node1 192.168.1.122 Centos7.5 || 2c || 2g
node2 192.168.1.125 Centos7.5 || 2c || 2g

部署K8S

三个节点分别执行以下命令

hostnamectl set-hostname master   #192.168.1.131执行该命令
hostnamectl set-hostname node01   #192.168.1.122执行该命令
hostnamectl set-hostname node02   #192.168.1.125执行该命令

三个节点全部执行以下命令

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
swapoff -a                            #关闭swap交换分区
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab      #禁止swap交换分区开机自启

#配置hosts文件
cat >> /etc/hosts << EOF        
192.168.1.131 k8s-master
192.168.1.122 k8s-node01
192.168.1.125 k8s-node02
EOF

#内核调整,将桥接的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                        #使上一条命令的配置生效
yum install -y ntpdate                  #安装ntpdate用于校准时间,确保master和node时间同步
ntpdate time.windows.com            #校准时间
yum install wget -y

#安装Docker
yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
systemctl start docker && systemctl enable docker

#因为默认k8s镜像仓库需要翻出去,所以配置国内镜像地址
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

yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0
systemctl enable kubelet && systemctl start kubelet

以下操作只需要在master中执行

#记得将192.168.2.130修改为master的ip地址,其余不变.需要等待几分钟才可执行完成.会提示[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver.只是警告可忽略.(如果master的cpu核数只有1核,这里还会提示cpu核数达不到要求的2核)
kubeadm init \
--apiserver-advertise-address=192.168.1.131 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.15.0 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16

#执行完上一条语句后,会有类似如下命令的提示,根据提示执行即可.还有一条kubeadm join 192.168.2.130:6443 --token,这个是用来在node上执行,加入到k8s集群中的,我们稍后需要用到
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

以下操作在两个node中执行

#不要直接复制这里的,是kubeadm init执行完成后,后面提示的那条语句.就是我们刚才说的那个
kubeadm join 192.168.2.130:6443 --token c1qboh.pg159xmk61z5rbeg \
    --discovery-token-ca-cert-hash sha256:ff09b3a7b0989de094b73e811bf378d8ab1cf3c1e413e3753ebd5de826075931

以下操作在master执行

#配置flannel网络
wget https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml

vim kube-flannel.yml
#修改以下两行对应内容,注意不能使用tab键,只能使用空格进行对启,注意格式要按照原来的,不能多一个空格,也不能少一个空格

......
106    image: lizhenliang/flannel:v0.11.0-amd64
120    image: lizhenliang/flannel:v0.11.0-amd64
......

kubectl apply -f kube-flannel.yml
ps -ef|grep flannel|grep -v grep
#可能需要一分钟左右启动初始化完成,才有返回结果.然后再执行下一步
kubectl get nodes
#可能需要等待几分钟,状态才能全部转为ready.然后再执行下一步
kubectl get pod -n kube-system
#可能需要等待几分钟,直至所有状态才能全部转为ready 1/1.然后再执行下一步
#创建nginx服务
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pods,svc      
#查看运行中的服务nginx的80:31501/TCP.我们从浏览器访问192.168.1.131:31501即可访问到nginx服务

访问nginx,效果:
Centos7.5使用kubeadm快速部署K8s集群【显哥出品,必为精品】

#配置k8s UI界面
wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

vim kubernetes-dashboard.yaml
#修改以下行对应内容,注意不能使用tab键,只能使用空格进行对启,注意格式要按照原来的,不能多一个空格,也不能少一个空格

......
111       - name: kubernetes-dashboard
112         image: lizhenliang/kubernetes-dashboard-amd64:v1.10.1   # 替换此行
......
157 spec:
158   type: NodePort     # 增加此行
159   ports:
160     - port: 443
161       targetPort: 8443
162       nodePort: 30001   # 增加此行
163   selector:
164     k8s-app: kubernetes-dashboard
......

kubectl apply -f kubernetes-dashboard.yaml
#现在我们可以访问https://192.168.1.131:30001.当然也需要等一会.注意是https

访问K8S UI界面,效果:(会提示链接不安全,点击高级->接受风险并继续即可)
Centos7.5使用kubeadm快速部署K8s集群【显哥出品,必为精品】

#创建管理员帐号
kubectl create serviceaccount dashboard-admin -n kube-system
#配置管理员帐号为集群管理员帐号
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
#执行以下命令后,会生成对应的token,在https://192.168.1.131:30001中选择token,输入该token即可登陆k8s管理后台
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')

Centos7.5使用kubeadm快速部署K8s集群【显哥出品,必为精品】

输入令牌Token,登陆K8S UI界面

Centos7.5使用kubeadm快速部署K8s集群【显哥出品,必为精品】

最终效果:

Centos7.5使用kubeadm快速部署K8s集群【显哥出品,必为精品】


本站博主 , 版权所有丨如未注明 , 均为原创
转载请注明原文链接:Centos7.5使用kubeadm快速部署K8s集群【显哥出品,必为精品】
喜欢 (1)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到