work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

K8S基础集群搭建

Posted on 2020-12-01 14:06  work hard work smart  阅读(159)  评论(0编辑  收藏  举报

软件安装 Docker,Kubelet(k8s的核心),kubeadm(集群的管理核心),Kubectl

Master上创建集群   kubeadm init  & kubeadm apply

Node加入集群  kubeadm join

整体架构 VMWare中两台虚拟机   192.168.127.136,  192.168.127.137

 

安装要求

在开始之前,部署Kubernetes集群机器需要满足以下几个条件:

一台或多台机器,操作系统 CentOS7.x-86_x64

硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多

集群中所有机器之间网络互通

可以访问外网,需要拉取镜像

禁止swap分区

 

一、在两台虚拟机上分别安装Docker, kubelet  kubeadm kubectl

1、安装Docker

$ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

$ yum -y install docker-ce-18.06.1.ce-3.el7

$ systemctl enable docker && systemctl start docker

$ docker --version

Docker version 18.06.1-ce, build e68fc7a

参考Centos系统下Docker的安装

 

2、准备工作

1) 关闭防火墙:

systemctl stop firewalld

systemctl disable firewalld

2) 关闭swap

swapoff   -a   //临时关闭

vi  /etc/fstab   //永久关闭,删除swap配置哪一行

3)  vi  /etc/hosts

 

 192.168.127.137为node2

 

 4) 将桥接的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

  

5) 关闭selinux:

sed -i 's/enforcing/disabled/' /etc/selinux/config

setenforce 0

 

3、添加阿里云YUM软件源

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=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

  

4、安装kubeadm, kubelet和kubectl

yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0

systemctl enable kubelet   //设置服务开机启动

 systemctl restart kubelet  //启动kubelet

 

5、部署Kubernetes Master

在192.168.127.136上执行

kubeadm init \
  --apiserver-advertise-address=192.168.127.136 \
  --image-repository registry.aliyuncs.com/google_containers \
  --service-cidr=10.1.0.0/16 \
  --pod-network-cidr=10.244.0.0/16  

 显示如下信息,按步骤执行

[root@localhost ~]# mkdir -p $HOME/.kube
[root@localhost ~]# cp -i /etc/kubernetes/admin.conf   $HOME/.kube/config
[root@localhost ~]# chown $(id -u):$(id -g) $HOME/.kube/config

  

 

6、安装Pod网络插件(CNI)

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

查看kube-flannel是否running状态

kubectl get pods -n kube-system

 

 

7、192.168.127.137这台执行join

kubeadm join 192.168.127.136:6443 --token tt3r8l.byjvaj43vpyr9047 --discovery-token-ca-cert-hash sha256:fd6d84bf2c71c6c1b609f2b49bd03b1602421c1944fa00ce84c57f0eeb65d776

 

 

查看node

kubectl get node

 

 

 

8、测试集群

在Kubernetes集群中创建一个pod,验证是否正常运行。

1)、创建nginx容器

kubectl create deployment nginx   --image=nginx

2) 暴露对外端口

kubectl expose deployment nginx --port=80 --type=NodePort

3) 查看nginx是否允许成功

kubectl get pod,svc

 

 

 访问Nginx,端口30941

 

 

 9、部署Dashboard

 1) 先Docker拉取镜像

docker pull  lizhenliang/kubernetes-dashboard-amd64:v1.10.1

 

2) 执行kubernetes-dashboard.yaml

下载kubernetes-dashboard.yaml, 地址:https://www.lanzous.com/i8jjpij ,将文件保存在/home/tools文件夹下

 

 执行kubernetes-dashboard.yaml

 

 

 

查看暴露的接口

kubectl get pods,svc -n kube-system

 

 

3)  访问Dashboard的web界面

 使用火狐浏览器打开https://192.168.127.136:30001

 创建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复制到“输入令牌”

 然后进入Kubernetes Dashboard界面

 

 

 

参考: 使用vmware搭建k8s集群(keubernetes集群)