温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

kubeadm快速搭建k8s集群

发布时间:2020-07-02 02:10:45 来源:网络 阅读:386 作者:山水共安荣 栏目:系统运维

前言
小菜鸟一枚,记录学习k8s的路程,如有错漏,纯属虚构~~
1.环境准备

我的配置都是按最低要求准备的:

主机 配置 ip
k8s-master-01 2C 2G 192.168.214.220
k8s-node-01 2C 2G 192.168.214.230
k8s-node-02 2C 2G 192.168.214.240

1)先关闭机器的自带防火墙服务,centos6是iptables,centos7是firewalld,再关闭selinux(百度一下,你就得到)
$ systemctl stop firewalld
2)关闭服务器的swap分区(主要是为了提高性能,可百度了解一下)

$ vim /etc/fstab
kubeadm快速搭建k8s集群
3)服务器可通外网,需要拉取镜像
4)集群各节点配置相互通信
步骤:
①在各节点执行ssh-keygen,一路回车带闪电
②ssh-copy-id 节点ip,如我在master节点上,执行ssh-copy-id root@192.168.214.230,跟着提示完成即可
5)将所有节点信息加入到所有节点的hosts文件,方便后面的操作进行解析

$ vim /etc/hosts
kubeadm快速搭建k8s集群
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

2.部署
2.1 步骤总览:
①在所有节点上安装Docker和kubeadm
②部署Kubernetes Master
③部署容器网络插件
④部署Kubernetes Node,将节点加入Kubernetes集群中
⑤部署Dashboard Web页面,可视化查看Kubernetes资源
2.2 kubernetes架构图
kubeadm快速搭建k8s集群
2.3 所有节点安装Docker/kubeadm/kubelet
2.3.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-版本号 
$ systemctl enable docker && systemctl start docker
Docker加速:
$ curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
$ docker --version 查看版本

2.3.2 添加阿里云的kubernetes的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=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.3.3 安装kubeadm,kubelet和kubectl

$ yum install kubelet kubeadm kubectl -y 
$ systemctl enable kubelet

2.4 部署master节点

$ kubeadm init   --apiserver-advertise-address=192.168.214.220   \
>   --image-repository registry.aliyuncs.com/google_containers  \
>   --kubernetes-version v1.16.3  \
>   --service-cidr=10.1.0.0/16  \
>   --pod-network-cidr=10.244.0.0/16  ()

记住输出的token和discovery-token-ca-cert-hash秘钥

执行完后按照最后几行的执行运行命令:

$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
$ kubectl get nodes

2.5 安装pod网络插件(cni)
$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
部署时要确保能够访问到quay.io这个镜像仓库地址
2.6 配置node节点
$ kubeadm join --token akjlre.8z441kdvooaxki5y 192.168.214.220:6443 --discovery-token-ca-cert-hash sha256:cc61a8822ad4c4da71aae1a57ca891fda8a42c5dde59dc4a00165999eb5cdb14
token 和discovery-token-ca-cert-hash是kubeadm init时输出,往上找去
如果提示token过期,可自行生成:

#生成token
$ kubeadm token create 
#生成discovery-token-ca-cert-hash
$ openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'  

2.7 测试kubernetes集群
在Kubernetes集群中创建一个pod,验证是否正常运行:

$ kubectl create deployment nginx --image=nginx
$ kubectl expose deployment nginx --port=80 --type=NodePort
$ kubectl get pod,svc

执行 kubectl get cs的时候,返回结果是:
kubeadm快速搭建k8s集群
因为我安装的kubectl几个组件是1.16.3的版本,这是1.16版本的bug,不用管他,往下走
2.8 部署Dashboard

$ wget -c https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta4/aio/deploy/recommended.yaml
$ vim recommended.yaml添加:

kubeadm快速搭建k8s集群

$ kubectl apply -f recommended.yaml
$ kubectl get pods -n kubernetes-dashboard

kubeadm快速搭建k8s集群
此时就可以访问http://NodeIP:3001

创建service account并绑定默认cluster-admin管理员集群角色:

$ kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard
$  kubectl create clusterrolebinding dashdoard-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin
$  kubectl describe secrets -n kubernetes-dashboard $(kubectl -n kubernetes-dashboard get secret | awk '/dashboard-admin/{print $1}')

kubeadm快速搭建k8s集群
登陆后显示界面:
kubeadm快速搭建k8s集群
到这儿,就搞定啦,see you~~

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI