一、docker环境安装
1.安装yum工具类
yum install -y yum-utils
2.配置yum源
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
3.安装docker
- #最新版本
- yum install -y docker-ce docker-ce-cli containerd.io
-
- #指定版本
- yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6
4.启动
- systemctl enable docker --now
-
-
-
- #检测docker启动是否成功
- docker info
5.配置加速
- sudo mkdir -p /etc/docker
- sudo tee /etc/docker/daemon.json <<- 'EOF'
- {
- "registry-mirrors":["https://82m9ar63.mirror.aliyuncs.com"],
- "exec-opts":["native.cgroupdriver=systemd"],
- "log-opts":{
- "max-size": "100m"
- },
- "storage-driver": "overlay2"
-
- }
-
- EOF
-
- sudo systemctl daemon-reload
- sudo systemctl restart docker
-
- #需要修改一下镜像加速地址
二、 基础环境设置
- #各个机器设置自己的域名
- hostnamectl set-hostname xxxx
-
- # 将SELinux 设置为permissive模式 (临时)
- sudo setenforce 0
- sudo sed -i 's/^SELINUX=enforcing$/SETINUX=permisive/' /etc/selinux/config
-
- # 关闭swap
- swapoff -a
-
- sed -ri 's/.*swap.*/#&/' /etc/fstab
-
- #允许 iptables 检查桥接流量
-
- cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
- br_netfilter
- EOF
-
- cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
- net.bridge.bridge-nf-call-ip6tables = 1
- net.bridge.bridge-nf-call-iptables = 1
- EOF
- sudo sysctl --system
三、 安装kubelet、kubeadm、bubectl
1.配置kubernetes源为阿里的yum源,并且启动kubelet
- #配置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
-
-
- yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernets
-
-
- sudo systemctl enable --now kubelet
-
2. 使用kubeadm引导集群
2.1.下载各个机器需要的镜像
- sudo tee ./images.sh <<-'EOF'
- #!/bin/bash
- images=(
- kube-apiserver:v1.20.9
- kube-proxy:v1.20.9
- kube-controller-manager:v1.20.9
- kube-scheduler:v1.20.9
- coredns:1.7.0
- etcd:3.4.13-0
- pasue:3.2
- )
- for imageName in ${images[@]};do
- docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/$imageName
- done
- EOF
-
- chmod +X ./images.sh && ./images.sh
2.2.域名映射
- #所有机器执行,ip和域名需要修改成自己的
- echo "172.31.0.2" cluster-endpoint" >> /etc/hosts
- #主节点初始化,image-repository地址需要修改为自己的
- kubeadm init \
- --apiserver-advertise-address=172.31.0.2 \
- --control-plane-endpoint=cluster-endpoint
- --image-repository registry.aliyuncs.com/google_containers \
- --kubernetes-version v1.20.9 \
- --service-cidr=10.96.0.0/16 \
- --pod-network-cidr=192.168.0.0/16
- #注意所有网络范围不重叠
2.3.执行成功后的界面中的命令要注意
- curl https://docs.projectcalico.org.manifests/calico.yaml -O
-
- kubectl apply -f calico.yaml
- sudo kubeadm join cluster-endpoint:6443 --token 5ezixq.itmxvdgey8uduysr \
- --discovery-token-ca-cert-hash sha256:d641cec650bdee479a3e7479b558ab68886f7c41ef89f2857099776ed72bcaae
-
-
- #这个令牌的有效期是24小时
新令牌
kubeadm token create --print-join-command
命令
- #查看集群所有节点
- kubectl get nodes
-
- #根据配置文件,给集群创建资源
- kubectl apply -f xxxx.yaml
-
- #查看集群部署了哪些应用
- docker ps === kubectl get pod -A
- # 运行中的应用在docke里面叫容器,在k8s里面叫Pod
三、可视化界面dashboard(一下命令都是在master节点执行)
1.部署
- kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta5/aio/deploy/recommended.yaml
-
- #如果访问不了该 yaml 文件,请使用下面的命令,效果是等价的
-
- kubectl apply -f https://kuboard.cn/install-script/k8s-dashboard/v2.0.0-beta5.yaml
2.设置访问端口
- kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard
-
- 修改type: ClusterIP 改为 type:NodePort
-
- #执行这个命令获取到dashboard的访问端口
- kubectl get svc -A | grep kubernetes-dashboard
-
3.登录然后访问,需要获取访问令牌