1. 配置yum源
sudo yum install -y yum-utils
sudo yum-config-manager \
-- add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
2. 安装docker
sudo yum install -y docker-ce docker-ce-cli contanerd.io
3. 启动
# --now 开机启动
systemctl enable docker --now
4. 配置加速
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-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
5. 安装Kubernetes
# 设置主机名,各个机器设置自己的域名
hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node1
hostnamectl sethostname k8s-node2
# 将SELinux 设置为permissive 模式(相当于将其禁用) 关闭swap
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /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
6 安装三大件kubelet, kubeadm, kubectl
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://..../kubernetes-el7-x86_64
enable=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://....../kubernetes/yum/doc/yum-key.gpg http://....../kubernetes/yum/doc/rpm-package-key.gpg
execlude=kubelet kubeadm kubectl
EOF
sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernetes
sudo systemctl enable --now kubelet
#检查kubelet
systemctl status kubelet
7. 使用kubeadm引导集群
# 下载各个机器需要的镜像
sudo tee ./images.sh <<-'EOF'
#! /bin/bash
images=(
kube-apiserver:v1.20.9
kube-proxy:v1.20.9
bube-controller-manager:v1.20.9
kube-scheduler:v1.20.9
coredns:1.7.0
etcd:3.4.13-0
pause:3.2
)
for imageName in ${images[@]} ; do
docker pull registry.....com/lfy_k8s_images/$imageName
done
EOF
#执行下载
chmod +x ./images.sh && ./images.sh
8. 主节点
#所有机器添加master域名映射,以下需要修改为自己的
echo "172.32.0.2 cluster-endpoint" >> /etc/hosts
# 主节点初始化
kubeadm init \
--apiserver-advertise-address=172.32.0.2 \ #这个ip一定是主节点的master ip
--control-plane-endpoint=cluster-endpoint \ #这个cluster-endpoint 是主节点域名的值
--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \
--kubernetes-version v1.20.9 \
--service-cidr=10.96.0.0/16 \ #k8s的网络负载均衡的时候用的
--pod-network-cidr=192.168.0.0/16
#一般这个ip
不用改--service-cidr=10.96.0.0/16和--pod-network-cidr=192.168.0.0/16,如果改,ip跟所有网络范围不重叠,比如172.32.0.2
上面运行完会出现下图
这个图里有几个重要的命令行需要运行
然后运行
mkdir -p $HOME/ .kube #创建目录
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config #复制到config
sudo chown $(id -u):$(id -g) $HOME/.kube/config #给权限
如果想加入主节点需要运行,也就是别的机器当做主节点或加入到主节点,运行上图下面的命令
kubeadm join cluster-endpoint:6443 --token ......... \
--discovery-token-ca-cert-hash sha256: ...... \
--control-plane
如果想加入工作节点需要运行上图下面的操作
kubeadm join cluster-endpoint:6443 --token ......... \
--discovery-token-ca-cert-hash sha256: ......
但是加节点的生成的命令行是有时效的,24小时有效,如果超时了,需要生成新的令牌token, 所有命令都是在master里运行
kubeadm token create --print-join-command
运行kubectl get nodes 去查看nodes
在master里下载插件的配置文件,比如calico
curl https://..../calico.yaml -O
然后执行这个配置文件
kubectl apply -f calico.yaml
# 如果之前改过 --pod-network-cidr=192.168.0.0/16 的IP地址,这个时候,calico 的配置文件的ip地址也需要更改
Kubeernetes 的简单命令
# 查看集群所有节点,只能在master里查看
kubectl get nodes
# 根据配置文件,给集群创建资源
kubectl apply -f xxx.yaml
# 查看集群部署了哪些应用
docker ps
kubectal get pods -A
# 运行中的应用在docker里叫容器,在k8s里叫pod
# 节点node加入
No comments:
Post a Comment