0
点赞
收藏
分享

微信扫一扫

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台

笙烛 2023-04-22 阅读 132

在上一篇我们已经初步认识了Kubernetes,在本篇我们就开始着手搭建kubernetes,具体操作如下:

1.环境准备

(1).环境说明

节点名称

机器IP

系统

master

10.2.3.191

CentOS7.7

node1

10.2.3.192

CentOS7.7

node2

10.2.3.190

CentOS7.7

(2).禁止swap(三台机器上都操作)

swapoff -a      #临时

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_docker

改配置文件/etc/fstab(永久生效)

vim /etc/fstab

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_docker_02

(3).关闭防火墙、selinux(三台机器上都操作)
(4).修改hosts(三台机器上都操作)

vim /etc/hosts

10.2.3.191  k8s-master
10.2.3.192  k8s-node1
10.2.3.190  k8s-node2

(5).修改三台机器的hostname
1).master

hostname k8s-master
vim /etc/sysconfig/network

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_vim_03

2).node1

hostname k8s-node1

vim /etc/sysconfig/network

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_vim_04

3).node2

hostname k8s-node2

vim /etc/sysconfig/network

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_vim_05

(6).安装docker(三台机器上都操作)

此处安装的是docker最新版本19.03.6

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce
systemctl enable docker
systemctl start docker

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_docker_06

(7).安装kubeadm、kubectl、kubelet(三台机器上都操作)

kubeadm:用于初始化Cluster
kubectl:是一个客户端,管理k8s集群的。是Kubernetes命令行工具。通过kubectl可以部署和管理应用,查看各种资源,创建、删除和更新各种组件。  
kubelet:运行在Cluster所有节点上,负责启动Pod和容器。

添加阿里云的yum源:

cat <<EOF > /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
EOF

查看yum源是否配置成功:

yum info kubeadm

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_github_07

安装这3个工具

yum install -y kubelet kubeadm kubectl

查看是否安装成功

rpm -qa|grep kube

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_docker_08

将kubelet启

systemctl enable kubelet
systemctl start kubelet

2.部署kubernetes master(在master上执行)

首先执行以下命令

echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables

部署kubernetes

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

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_docker_09

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_docker_10

要开始使用群集,需要运行以下命令:

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

此时可以查看节点信息,发现只有一个master

kubectl get nodes

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_vim_11

此时显示 master的状态是 NotReady

此时还要记录下来安装完成的加入node节点命令(后续会使用到,master节点上不用执行了),如下:

kubeadm join 10.2.3.191:6443 --token t3gjda.3lynr5n09p0rc5j8 \
--discovery-token-ca-cert-hash sha256:e8de00b05c32cbb454184ce126049309ab305e4cab1ee65c2ff136063a778c29

3.安装Pod网络插件(CNI) (在master上执行)

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
sed -i 's/quay.io\/coreos/registry.cn-beijing.aliyuncs.com\/imcto/g' kube-flannel.yml
kubectl apply -f kube-flannel.yml

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_docker_12

此时再次查看 master的状态

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_vim_13

已经显示为 Ready。

4.将node节点加入到集群中去(分别在node1和node2上执行)

(1).node1上执行以下语句

首先执行以下命令

echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables

然后执行加入集群命令

kubeadm join 10.2.3.191:6443 --token t3gjda.3lynr5n09p0rc5j8 \
--discovery-token-ca-cert-hash sha256:e8de00b05c32cbb454184ce126049309ab305e4cab1ee65c2ff136063a778c29

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_vim_14

(2).node2上执行以下语句

首先执行以下命令

echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables

然后执行加入集群命令

kubeadm join 10.2.3.191:6443 --token t3gjda.3lynr5n09p0rc5j8 \
--discovery-token-ca-cert-hash sha256:e8de00b05c32cbb454184ce126049309ab305e4cab1ee65c2ff136063a778c29

此时可以在master上执行以下命令查看node节点是否已经加入

kubectl get nodes

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_docker_15

5.创建Pod以验证集群是否正常(在master上执行)

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

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_vim_16

此时可以在界面访问nginx,地址如下:

http://10.2.3.191:31185/

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_github_17

6.部署Dashboard (在master上执行)

dashboard的github仓库地址:https://github.com/kubernetes/dashboard

(1).部署dashboard

此时需要在master的hosts中配置如下  

vim /etc/hosts

199.232.28.133 raw.githubusercontent.com

要部署仪表板,请执行以下命令:

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.yaml
kubectl apply -f recommended.yaml 

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_github_18

查看是否已经运行

kubectl get pods -n kubernetes-dashboard

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_vim_19

(2).端口设置

在默认情况下,dashboard并不对外开放访问端口,这里简化操作,直接使用nodePort的方式将其端口暴露出来,修改serivce部分的定义:

vi recommended.yaml 

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort          #增加的
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30001     #增加
  selector:
    k8s-app: kubernetes-dashboard

删除刚才生成的配置信息

kubectl delete  -f recommended.yaml

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_docker_20

再次部署

kubectl apply  -f recommended.yaml

查看状态

kubectl get pods -n kubernetes-dashboard

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_docker_21

此时可以通过浏览器访问拉

https://10.2.3.191:30001/

(3).查看访问Dashboard的认证令牌

#创建虚拟账户,只面向应用不面向用户
kubectl create serviceaccount  dashboard-admin -n kube-system
#集群角色绑定
kubectl create clusterrolebinding  dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
获取token用户登录使用
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_github_22

此时根据获取的token登陆系统

eyJhbGciOiJSUzI1NiIsImtpZCI6InBTN2xEaGZCaGt5Y21aWGdkRlFzOS1nR0NHTFRsLWVOeTRnWDE4Q0RDV0UifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tMjg4dGoiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYjc4MjRkNzgtZjUwNi00Yjk1LTk1ZjAtZDVhM2E0Y2ZlNGY2Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.uwUBZb00eOoXl1ivzTZz1HtMaUtL4T7ZnP0dTdun7v6MVXgQxI-K9nn1jFiOI57YsIRR6vSBvGlXYMLyzoh4nWcV8i7cte__4IG7Jl9_gVQ-KH58OZByleaI0W1kg3cT4DeEP8aHENt-WMglVINehn6ZEZ_XL0-h2fn_6hhDQRNXsFpFvwxcfnZBJ_eBKkXqbOEEMaoETF4K9mIc2chClIKZM5AXlFtMOHqwGgmpSdEBkWDIAjKWX_hIHJo-XdU3mFnhcYQyS9ZcssFMSniHysrJT_gt0F4uLylSHX0vUrtgOvj8MBPGPnFitIexdGzYrKIFZjlkQOaMPQGL8ClL2Q

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_vim_23

快速部署Kubernetes 1.17:使用kubeadm轻松构建强大的容器编排平台_github_24

至此Kubernetes搭建完成。

举报

相关推荐

0 条评论