一、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.执行成功后的界面中的命令要注意
- 设置.kube/config
- 安装网络组建
curl https://docs.projectcalico.org.manifests/calico.yaml -O kubectl apply -f calico.yaml
- 加入node节点
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.登录然后访问,需要获取访问令牌