首页 > 其他分享 >使用kubeadm安装k8s集群(v1.18.0)

使用kubeadm安装k8s集群(v1.18.0)

时间:2022-12-21 23:01:26浏览次数:40  
标签:master1 v1.18 kubernetes -- etc dashboard kubeadm k8s docker

一、安装环境

  1. 系统
[root@master1 ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)
[root@master1 ~]# uname -a
Linux master1 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
  1. 配置

角色

IP

配置

master1

172.16.0.11

4核4G内存

node1

172.16.0.12

4核4G内存

node2

172.16.0.13

4核4G内存

二、基础配置(所有服务器都要配置)

  1. 更改服务器名称
hostnamectl set-hostname master1    #在master1上操作
hostnamectl set-hostname node1 #在node1上操作
hostnamectl set-hostname node2 #在node2上操作
  1. 添加域名绑定(所有服务器都要操作)
cat >> /etc/hosts << EOF
172.16.0.11 master1
172.16.0.12 node1
172.16.0.13 node2
EOF
  1. 关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
  1. 关闭selinux
setenforce 0 && sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
  1. 关闭swap分区
swapoff -a && sed -ri 's/.*swap.*/#&/' /etc/fstab

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 #让配置生效
  1. 配置时间同步
yum install -y ntpdate && ntpdate time.windows.com

三、安装docker(所有服务器都要配置)

  1. 卸载旧版本的docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
  1. 安装docker
yum install -y wget
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-18.06.1.ce-3.el7
  1. 启动docker及配置为开机启动
systemctl enable docker && systemctl start docker
  1. 查看docker版本
docker --version
  1. 配置阿里云镜像加速
mkdir -p /etc/docker

tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://sx15mtuf.mirror.aliyuncs.com"]
}
EOF

systemctl daemon-reload
systemctl restart docker

四、添加阿里云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

五、安装kubeadm、kubelet、kubectl(所有服务器都要配置)

  1. 安装三大件
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
  1. 设置开机启动
systemctl enable kubelet

六、初始化master1节点(仅master1节点操作)

  1. 初始化master1节点
kubeadm init \
--apiserver-advertise-address=172.16.0.11 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.18.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
  1. 配置kubectl工具
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown ( i d − u ) : (id -u):(id−u):(id -g) $HOME/.kube/config

七、部署CNI插件(仅master1节点操作)

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

kubectl get pods -n kube-system #查看flannel状态

kubectl get nodes #flannel就绪后,我们可以看到master1也已经就绪

八、添加node节点(所有node节点上操作)

  1. 将master1节点的flannel配置拷贝到node节点
scp -r /etc/cni [email protected]:/etc/cni    #这个是在master1上操作的
systemctl restart kubelet
  1. 将node节点加入到集群
kubeadm join 172.16.0.11:6443 --token x1spbh.gfwauz5pp9x8jk5j     --discovery-token-ca-cert-hash sha256:601a110b6cb91577322b3dc2253140a5f2c2eed6873495c213ff9795dcdfb2a6
  1. 查看节点状态
kubectl get nodes

九、测试

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

十、安装dashboard

  1. 下载yml文件
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc7/aio/deploy/recommended.yaml
  1. 将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
  1. 执行并生效
kubectl create -f recommended.yaml
  1. 创建serceaccount和clusterrolebinding资源YAML文件
vim adminuser.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
  1. 创建admin-user并且赋予admin-user集权管理员权限
kubectl create -f adminuser.yaml

6.在浏览器中输入 ​​​https://172.16.0.11:30001/​​ ​​

使用kubeadm安装k8s集群(v1.18.0)_k8s

  1. 查看token
[root@master1 ~]# kubectl get secret -n kubernetes-dashboard
NAME TYPE DATA AGE
default-token-nzrk4 kubernetes.io/service-account-token 3 89m
kubernetes-dashboard-certs Opaque 0 89m
kubernetes-dashboard-csrf Opaque 1 89m
kubernetes-dashboard-key-holder Opaque 2 89m
kubernetes-dashboard-token-bs9qp kubernetes.io/service-account-token 3 89m #找到此项

[root@master1 ~]# kubectl describe secret kubernetes-dashboard-token-bs9qp -n kubernetes-dashboard
Name: kubernetes-dashboard-token-bs9qp
Namespace: kubernetes-dashboard
Labels: <none>
Annotations: kubernetes.io/service-account.name: kubernetes-dashboard
kubernetes.io/service-account.uid: e03da0c2-3e9c-42d6-b1da-3417e3cc2764

Type: kubernetes.io/service-account-token

Data
====
token: eyJhbGciOiJSUzI1NiIsImtpZCI6ImNfTmhqVFdsbXpiRUpTTnA1bEhNanhnMUNTY2lQUWJDd0FBcWljQXExejAifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi1iczlxcCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImUwM2RhMGMyLTNlOWMtNDJkNi1iMWRhLTM0MTdlM2NjMjc2NCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.0CVjK8WjyDiyYShSwyCyTKN-f3FoYDlgIX--_ISshxLmmzJJRJolqiUXkbCs_OBZUhOz_3tJarpjgnFUcoETpFgDjdB9naztbajTPrGDIgLzjVWKsvnsfAKaMGxnpyNLBnCQAQzmGBKfNBg6jnxhEAxcTkA42N0yxxX8-30PTNsZjW8hx8haoSYoUK_ttlVbi1ajT8JHg2YCo3Scxdg01niZpsTntmqtSeraxE7bPgDCGBX6281iMAhlT9vDXTkYUlFoEXqdIC717cvDsh-ky0xEkOR4pEnmUiOTEIJWor_lr8LMA4FCaA1v2Xw-4f9rHDEzjWq2DTjn4DI2WWia2A
ca.crt: 1025 bytes
namespace: 20 bytes
[root@master1 ~]#
  1. 输入token,就可以进入dashboard了

使用kubeadm安装k8s集群(v1.18.0)_docker_02





标签:master1,v1.18,kubernetes,--,etc,dashboard,kubeadm,k8s,docker
From: https://blog.51cto.com/u_5147178/5956783

相关文章

  • Kubernetes(k8s) kubectl top常用命令
    kubectl在$HOME/.kube目录中查找一个名为config的配置文件。可以通过设置KUBECONFIG环境变量或设置--kubeconfig参数来指定其它kubeconfig文件。本文主要介绍K......
  • k8s源码分析9-检查k8s集群准入配置和其他准备工作
    本节重点总结:k8s集群检查操作新建项目kube-mutating-webhook-inject-pod,准备工作k8s集群检查操作检查k8s集群否启用了准入注册API:执行kubectlapi-versions|g......
  • kubeasz 安装 K8S 集群启用 NFS 存储问题排查
    目录kubeasz安装Kubernetes集群启用NFS存储,默认情况无法安装使用问题排查集群规划安装Kubernetes集群问题复现配置文件中默认启用nfs存储安装后nfspod无法启动......
  • k8s高级存储-GlusterFS存储类(StorageClass)实战
       GlusterFS是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。集成来自多台服务器上的磁盘存储资源到单一全局命名......
  • K8S集群(高可用)搭建详细过程
    多master(高可用)1.安装要求在开始之前,部署Kubernetes集群机器需要满足以下几个条件:一台或多台机器,操作系统 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多可以访问......
  • 部署Kubernetes(k8s)时,为什么要关闭swap、selinux、firewalld
    作者:知乎用户链接:https://www.zhihu.com/question/374752553/answer/2665255695来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。防火墙和s......
  • k8s1.25安装
    一、基础环境准备1)主机名解析为了方便后面集群节点间的直接调用,在这配置一下主机名解析,企业中推荐使用内部DNS服务器#主机名成解析编辑三台服务器的/etc/hosts文件,添......
  • 手把手教你一套完善且高效的k8s离线部署方案
    作者:郝建伟背景面对更多项目现场交付,偶而会遇到客户环境不具备公网条件,完全内网部署,这就需要有一套完善且高效的离线部署方案。系统资源编号主机名称IP资源类型......
  • k8s原理之-Pod控制器--ReplicaSet、Deployment
    一、Pod控制器及其功用Pod控制器是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试进行重启,当根据重启策略无效,则会重新新建pod的资......
  • k8s原理之-Flannel网络二进制部署和测试
    一、K8S的ip地址NodeIP:节点设备的IP,如物理机,虚拟机等容器宿主的实际IP。PodIP:Pod的IP地址,是根据docker0网络IP段进行分配的。ClusterIP:Service的IP,是一个虚拟I......