189 8069 5689

kubeadm快速搭建k8s集群-创新互联

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

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、网页空间、营销软件、网站建设、石拐网站维护、网站推广。

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

主机 配置 ip
k8s-master-012C 2G192.168.214.220
k8s-node-012C 2G192.168.214.230
k8s-node-022C 2G192.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~~

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻名称:kubeadm快速搭建k8s集群-创新互联
新闻来源:http://cdxtjz.cn/article/csihpi.html

其他资讯