ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

kubeadm搭建k8s v1.13.3及部署dashboard

kubeadm搭建k8s v1.13.3及部署dashboard PS由于部署这套环境用到的镜像和相关文件难以下载特上传到百度网盘供大家使用链接https://pan.baidu.com/s/1Zrmuf0ddUQlpw6ErmRoLow 提取码t9pl一、环境说明平台OpenStack操作系统CentOS 7.2硬件配置2C4G50Gk8s-master:172.16.31.222k8s-node1172.16.31.212k8s-node2172.16.31.216二、环境准备【所有机器都做】1.关闭防火墙2.禁用SELinux3.关闭Swapswapoff -a (临时关闭) vim /etc/fstab (注释或删除swap行永久关闭)4.添加主机名与IP对应关系vim /etc/hosts172.16.31.222 k8s-master 172.16.31.212 k8s-node1 172.16.31.216 k8s-node2通过hostnamectl set-hostname 主机名来修改各节点的主机名5.将桥接的IPv4流量传递到iptables链【CentOS必须做这一步】cat /etc/sysctl.d/k8s.conf EOF net.bridge.bridge-nf-call-ip6tables 1 net.bridge.bridge-nf-call-iptables 1 net.ipv4.ip_forward 1 EOF sysctl --system6.安装docker-ce如已安装docker先卸载CentOS完整卸载Dockerwget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo yum install docker-ce-18.06.1.ce-3.el7 -y systemctl enable docker systemctl start docker docker -v7.添加阿里YUM软件源,安装kubeadm、kubeletcat /etc/yum.repos.d/kubernetes.repo EOF [kubernetes] namekubernetes baseurlhttps://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled1 gpgcheck1 repo_gpgcheck1 gpgkeyhttps://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF yum clean all yum -y install kubelet-1.13.3 yum -y install kubeadm-1.13.3 yum -y install kubectl-1.13.3 systemctl enable kubelet三、部署Kubernetes Master1.初始化集群【在管理节点操作】kubeadm init \ --apiserver-advertise-address172.16.31.222 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.13.3 \ --service-cidr10.1.0.0/16 \ --pod-network-cidr10.244.0.0/16敲完回车后会去网上拉取镜像需要等待……如果配置错误可以使用kubeadm reset重置解释--apiserver-advertise-address #指定集群通信IP通常为服务器的内网IP --image-repository #指定镜像源为阿里源 --kubernetes-version #指定版本 --service-cidr #负载均衡的虚拟IP --pod-network-cidr #容器使用的IP地址会分配到每个pod重要把token值保留下来节点加入集群需要2.使用kubectl工具mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config kubectl get node #发现状态为不可读还需配置网络3.安装Pod网络插件yum -y install ca-certificates #该证书用于从官网下载kube-flannel.yml wget https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml修改kube-flannel.ymlvim kube-flannel.yml把106行和120行的镜像名字改为quay.io/coreos/flannel:v0.11.0-amd64,在125行下面添加- --ifaceeth0,解决多块网卡启动失败的问题启动flanneldocker pull quay.io/coreos/flannel:v0.11.0-amd64 #手动拉取镜像 kubectl apply -f kube-flannel.yml kubectl get pods -n kube-system #查看 kube-system命名空间下的pod可以看到所有镜像的状态为Running,master的状态也变为ReadyPS:删除flannel的命令kubectl delete -f kube-flannel.yml四、将节点加入集群1.把flannel的镜像导入到两台节点机器上docker save quay.io/coreos/flannel:v0.11.0-amd64 flannel.tar scp flannel.tar k8s-node1:. scp flannel.tar k8s-node2:.2.节点机器导入flannel镜像docker load -i flannel.tar3.节点加入集群kubeadm join 172.16.31.222:6443 --token t4wyos.j87convvh1y7bbvp --discovery-token-ca-cert-hash sha256:1ead7092121d6bc649fffcc2019b0880782c639a5e9f3b5e531f92487875cdef --node-name k8s-node1 kubeadm join 172.16.31.222:6443 --token t4wyos.j87convvh1y7bbvp --discovery-token-ca-cert-hash sha256:1ead7092121d6bc649fffcc2019b0880782c639a5e9f3b5e531f92487875cdef --node-name k8s-node2说明–node-name指定该节点在集群中的名字4.master上查看集群五、测试kubernetes集群kubectl create deployment nginx --imagenginx #会去初始化指定的镜像仓库拉取nginx镜像,需要等待 kubectl expose deployment nginx --port80 --typeNodePort #声明内部通信端口为80外部以节点IP加端口访问 kubectl get pods,svc -o wide #查看详细信息可以看到nginx安装到了k8s-node1节点上外部访问端口为32458去k8s-node1机器上查看有nginx镜像并且运行了一个nginx容器浏览器访问验证(从集群中的任意一个节点都可以访问)六、安装Dashboard1.下载recommended.yamlvim /etc/hosts添加如下内容# GitHub Start 192.30.253.112 github.com 192.30.253.119 gist.github.com 151.101.100.133 assets-cdn.github.com 151.101.100.133 raw.githubusercontent.com 151.101.100.133 gist.githubusercontent.com 151.101.100.133 cloud.githubusercontent.com 151.101.100.133 camo.githubusercontent.com 151.101.100.133 avatars0.githubusercontent.com 151.101.100.133 avatars1.githubusercontent.com 151.101.100.133 avatars2.githubusercontent.com 151.101.100.133 avatars3.githubusercontent.com 151.101.100.133 avatars4.githubusercontent.com 151.101.100.133 avatars5.githubusercontent.com 151.101.100.133 avatars6.githubusercontent.com 151.101.100.133 avatars7.githubusercontent.com 151.101.100.133 avatars8.githubusercontent.com # GitHub Endcurl -kfLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta1/aio/deploy/recommended.yaml --no-check-certificate2.修改recommended.yaml将命名空间改为默认的kube-systemsed -i /namespace/ s/kubernetes-dashboard/kube-system/g recommended.yamlvim recommended.yaml添加40行和44行的内容type: NodePort nodePort: 300013.启动kubernetes-dashboarddocker pull kubernetesui/dashboard:v2.0.0-beta1 kubectl apply -f recommended.yaml kubectl get pods,svc -n kube-system4.访问kubernetes-dashboardhttps://172.16.31.222:300015.使用token访问创建SA并绑定默认cluster-admin管理员集群角色创建管理员用户kubectl create serviceaccount dashboard-admin -n kube-system kubectl create clusterrolebinding dashboard-admin --clusterrolecluster-admin --serviceaccountkube-system:dashboard-admin获取token值kubectl get secret -n kube-system |grep dashboard-admin #查找管理员用户的token名字kubectl describe secret dashboard-admin-token-vmgpb -n kube-system将token后面的值复制到登录界面登录成功发现有个服务有问题未完待续……
返回列表