Kubernetes搭建部署K8S1.13的详细过程
admin
2023-03-29 17:21:16
0

首先我准备了3台CentOS 7 x64的虚拟机,分别对应的角色和IP地址如下:

KS8             10.20.30.63      master

Dcoker01   10.20.30.64     node01

Docker02   10.20.30.55     node02

每一台为了实验的顺利,我都关闭了防火墙和SELinux

Systemctl stop firewalld

Systemctl disable firewalld

Vi /etc/SELinux/config

Kubernetes搭建部署K8S1.13的详细过程

并且安装了vim

yum install -y vim

以及关闭所有服务器的swap分区:

vim /etc/fstab

把swap这行删除掉后保存

Kubernetes搭建部署K8S1.13的详细过程

重启虚拟机reboot

接下来需要对每一台添加Host记录,实现主机和IP对应关系,如果您有DNS解析,这一步可以忽略

vim /etc/hosts

Kubernetes搭建部署K8S1.13的详细过程

接下来为每一台开启网络转发功能

vim /etc/sysctl.conf #插入以下内容

net.ipv4.ip_forward = 1

Kubernetes搭建部署K8S1.13的详细过程

sysctl -p #生效

Kubernetes搭建部署K8S1.13的详细过程

cat > /etc/sysctl.d/k8s.conf << EOF

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

Kubernetes搭建部署K8S1.13的详细过程

使配置生效

sysctl --system

接下来再所有服务器上安装Docker,Kubeadm,kubelet

第一个先装docker

yum install -y docker

systemctl start docker

systemctl enable docker

Kubernetes搭建部署K8S1.13的详细过程

第二个安装kubeadm,kubelet,kybectl

先更新下yum源

yum update -y

设置kubernetes YUM仓库

https://mirrors.aliyun.com/kubernetes/yum/repos/

Kubernetes搭建部署K8S1.13的详细过程Kubernetes搭建部署K8S1.13的详细过程

vim /etc/yum.repos.d/kubernetes.repo

编辑内容如下:

[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

Kubernetes搭建部署K8S1.13的详细过程

查看kubernetes可以安装的版本清单

yum list --showduplicates | grep 'kubeadm\|kubectl\|kubelet'

Kubernetes搭建部署K8S1.13的详细过程

在这里安装1.13.3

yum install -y kubelet-1.13.3 kubeadm-1.13.3 kubectl-1.13.3 kubernetes-cni-0.6.0-0

Kubernetes搭建部署K8S1.13的详细过程

所有服务器只设置kubelet开机启动

systemctl enable kubelet

接下来初始化Kubernetes Master(只在K8S服务器上执行)

kubeadm init \

--apiserver-advertise-address=10.20.30.63 \ #master监听的IP地址

--image-repository registry.aliyuncs.com/google_containers \ #指定一个仓库

--kubernetes-version v1.13.3 \ #指定版本

--service-cidr=10.30.0.0/16 \ #指定service网络IP地址段,负载均衡的虚拟IP

--pod-network-cidr=10.244.0.0/16 #指定pod网络,容器用到的IP地址,这个需要和后面用到的yml匹配一致,如下图

++++++++++++++++++++++++++++++++

Kubernetes搭建部署K8S1.13的详细过程

+++++++++++++++++++++++++++++++

Kubernetes搭建部署K8S1.13的详细过程

完成后注意执行结果的这段kubeadm join,这是其他节点加入需要的Token

Kubernetes搭建部署K8S1.13的详细过程

kubeadm join 10.20.30.63:6443 --token mf9dfj.0zaovbosaselcsmq --discovery-token-ca-cert-hash sha256:e06a5190af0a754bed99053eeaac1f419c426b3b9c41d28c187baf08f6ebc19e

生成的证书保存在

Kubernetes搭建部署K8S1.13的详细过程

然后配置 kubectl

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

Kubernetes搭建部署K8S1.13的详细过程

可以先看看下载下来的镜像kube-apiserver,kue-controller-manager,kube-proxy,kube-scheduler都是1.13.3版本

Docker images

Kubernetes搭建部署K8S1.13的详细过程

接下来安装Pod网络插件

++++++++++++++++++++++++

建议先执行这部避免出现下面的问题

docker pull quay.io/coreos/flannel:v0.11.0-amd64

Kubernetes搭建部署K8S1.13的详细过程

+++++++++++++++++++++++

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

Kubernetes搭建部署K8S1.13的详细过程

再检查下kubectl get pods -n kube-system

Kubernetes搭建部署K8S1.13的详细过程

再检查下节点状态

kubectl get node

Kubernetes搭建部署K8S1.13的详细过程

再检查下命名空间

kubectl get pods --all-namespaces或kubectl get pods --all-namespaces -o wide

Kubernetes搭建部署K8S1.13的详细过程

接下来就是将Node节点加入到集群中

利用上面的这段在每一台node去执行(Docker01和Docker02)

kubeadm join 10.20.30.63:6443 --token mf9dfj.0zaovbosaselcsmq --discovery-token-ca-cert-hash sha256:e06a5190af0a754bed99053eeaac1f419c426b3b9c41d28c187baf08f6ebc19e

Kubernetes搭建部署K8S1.13的详细过程

加入成功后可以在K8S(master)看到新Node加入

Kubernetes搭建部署K8S1.13的详细过程

但需要多等下让他们2个节点准备好

Kubernetes搭建部署K8S1.13的详细过程

其实在等待节点准备好的期间也就是节点也在拉取docker pull quay.io/coreos/flannel:v0.11.0-amd64

接下来测试下集群,创建一个Nginx的image

kubectl create deployment nginx --image=nginx

可以看到也是在拉取nginx的image到运行起来

Kubernetes搭建部署K8S1.13的详细过程

接下来发布这个Nginx可以让外部访问

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

Kubernetes搭建部署K8S1.13的详细过程

可以通过kubectl get pods,svc -o wide查看更为详细的信息

Kubernetes搭建部署K8S1.13的详细过程

通过访问任意一个Node都是可以打开http://10.20.30.6x:32109访问到

Kubernetes搭建部署K8S1.13的详细过程

最后部署一个Dashboard实现仪表板的功能来监控K8S的运维

在K8S上线下载https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml文件

yum install -y wget

wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

Kubernetes搭建部署K8S1.13的详细过程

vim kubernetes-dashboard.yaml

把框柱的部分由我们无法访问的Google源改成阿里的源

Kubernetes搭建部署K8S1.13的详细过程

改成如下:

registry.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.1

Kubernetes搭建部署K8S1.13的详细过程

接下来再修改Service部分

Kubernetes搭建部署K8S1.13的详细过程

保存退出

然后应用kubectl apply -f kubernetes-dashboard.yaml

Kubernetes搭建部署K8S1.13的详细过程

查看运行状态

kubectl get pods -n kube-system

Kubernetes搭建部署K8S1.13的详细过程

查看访问端口kubectl get pods,svc -n kube-system

Kubernetes搭建部署K8S1.13的详细过程

在外部通过https访问

Kubernetes搭建部署K8S1.13的详细过程

在这里使用令牌登录,因此需要先创建SA并绑定默认cluster-admins管理员集群角色,在K8S执行

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}')

创建一个服务账户dashboard-admin隶属于K8S的最高权限cluster-admin组

Kubernetes搭建部署K8S1.13的详细过程

创建的dashboard-admin账户在kubectl get secret -n kube-system下可用查看到

Kubernetes搭建部署K8S1.13的详细过程

以后查看这个账户的令牌token也可以执行kubectl describe secret dashboard-admin-token-6j4ln -n kube-system再次获取

Kubernetes搭建部署K8S1.13的详细过程

复制Token到令牌进行登录

Kubernetes搭建部署K8S1.13的详细过程

登录成功,看到仪表板

Kubernetes搭建部署K8S1.13的详细过程

到这里,搭建部署K8S就告一个段落了。

相关内容

热门资讯

特朗普下令不打了,美国的“余粮... 可以说戛然而止,快得让很多人都无法适应。前两周,每一天美国都要打击伊朗一通。就在7月24日白宫会议前...
穆杰塔巴最新表态:支持黎真主党 △伊朗最高领袖穆杰塔巴·哈梅内伊(资料图)当地时间7月26日晚,伊朗最高领袖穆杰塔巴·哈梅内伊对黎巴...
美军瘫痪一艘驶向伊朗的油轮,特... 美国总统特朗普虽下令暂停打击伊朗,但美军仍在执行对霍尔木兹海峡的封锁任务。针对美军瘫痪一艘驶向伊朗油...
“小牌大耍”的底气到底是哪里来... 澎湃首席评论员 李平这两天,“艺人李权哲乘高铁占座事件”在网上引发热议,该艺人参加的活动主办方曾发布...
越南籍船舶南海遇险沉没,中方已... 据凤凰卫视报道,一艘越南船舶7月24日夜间在越南庆和以东220海里附近遇险沉没,船上共62名越南籍人...
李权哲占座、蒙面、装死:娱乐圈... 你买了一张高铁一等座的票,找到自己的位置,18A。有人坐着。你拿出手机看了眼购票记录——没错,18A...
杭州景区咖啡店闯入1条幼蛇,仅... 夏天气温高、湿度大,蛇类活动进入高峰期,千万别被“小蛇无害”的刻板印象骗了!有些幼蛇看着迷你可爱,实...
AI开源公开信签署企业增至50... IT之家 7 月 26 日消息,英伟达、微软、IBM、Meta 等 25 家美国科技企业本周(7 月...
南阳快手短视频代运营企业的服务... 在短视频平台快速发展的背景下,企业通过快手等渠道进行内容运营已成为常见的市场动作。对于希望借助短视频...
普通人该如何跟上科技发展的步伐 这个被称作科技的词汇, 听起来既有宏大之感, 又颇为遥远, 好似仅仅归属于在实验室里专心致志钻研的科...