Kubernates1.21.2-deploy

Kubernates1.21.2-deploy

一、Kubernates安装

未标明master执行的,则全部节点都执行!

1.系统初始化
#./bin 目录下提供了文章中所需的脚本,下面贴出
$ sh init_conditions.sh
$ vim /etc/fstab # 注释永久下swap
2.依赖软件安装
$ sh init_docker.sh #脚本中有详细注释,多去理解哈。
3.控制节点Master部署(仅管理节点运行)

注意:先配置镜像

#下载镜像,可以先查看需要的镜像版本,然后下载国内镜像打包为需要的镜像版本
#参考博客 https://blog.csdn.net/xianghanscce/article/details/117935632
$ kubeadm config images list 
#下载国内镜像,修改为所需镜像名
$ sh kubeadm.sh
#初始化master,需要记住token
$ sh init_k8s.sh
#给用户使用权限,这里以root为例
$ sh create_jurisdiction.sh
#3)记录Token(供节点加入集群使用)/创建Token/删除权限,该步骤在安装中不执行,仅扩展知识。
$ kubeadm token create
$ rm -rf $HOME/.kube
3)安装calico
$ kubectl apply -f https://docs.projectcalico.org/v3.9/manifests/calico.yaml
#等待所有的status变成Running,node的状态才会变成Ready
$ kubectl get pods --all-namespaces -w
4)加入工作节点
kubeadm join 192.168.56.186:6443 --token 71h03b.psh05o31axvp09jg \
	--discovery-token-ca-cert-hash sha256:5ed285e40f048e923d4a0e06dfeaac7f3ffcf20bed6402ee3fec1ee4b42d14d8

4.单节点部署

#将所有节点都去除污点标签
$ kubectl taint nodes --all node-role.kubernetes.io/master-
#恢复
$ kubectl taint node master01 node-role.kubernetes.io/master=""

5.相关脚本

  • create_jurisdiction.sh
#!/bin/bash
mkdir -p ~/.kube
sudo cp -i /etc/kubernetes/admin.conf ~/.kube/config
sudo chown $(id -u):$(id -g) ~/.kube/config
  • init_docker.sh
#!/bin/bash
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 clean all
yum makecache
#yum list docker-ce.x86_64 --showduplicates | sort -r
yum -y install docker-ce-20.10.2 docker-ce-cli-20.10.2 containerd.io docker-ce-rootless-extras-20.10.2
systemctl enable docker && systemctl start docker
echo `docker --version`
#2) 添加阿里yum软件源,及cgroupfs(docker与kubectl的cgroupfs需要一致,否则kubectl无法成功启动)
cat > /etc/docker/daemon.json << EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF
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
#修改kubelet配置与docker保持一致
sed -i "s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g" /var/lib/kubelet/config.yaml
#3)Kubernates相关组件:使用kubeadm安装,查看kubeadm版本(即要安装的Kubernates版本)
#yum list kubeadm --showduplicates | sort -r
yum install -y kubelet-1.21.2-0 kubeadm-1.21.2-0 kubectl-1.21.2-0 --disableexcludes=kubernetes
# 先版本APIserver改动会自动重启,6443端口起不来证明你配置有问题。主要用kubelet命令管理
systemctl start kubelet
systemctl enable kubelet
  • init_conditions.sh
#!/bin/bash
#1.关闭防火墙与SElinux
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/enforcing/disabled/' /etc/selinux/config 
setenforce 0 
#2.关闭swap:/etc/fstab 永久注释
swapoff -a 
yum install vim -y
#3.hosts添加相关节点
cat > /etc/hosts << EOF
192.168.200.100 node1
192.168.200.101 node2
EOF
#4.桥接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 # 生效
#5.时间同步:
yum install ntpdate -y
ntpdate time.windows.com
  • init_k8s.sh
#!/bin/bash
kubeadm init \
  --kubernetes-version=v1.21.2 \
  --pod-network-cidr=10.244.0.0/16 \
  --apiserver-advertise-address 192.168.200.100 \
  --v=6
  • kubeadm.sh
#!/bin/bash
set -e
KUBE_VERSION=v1.21.2
KUBE_PAUSE_VERSION=3.4.1
ETCD_VERSION=3.4.13-0
CORE_DNS_VERSION=1.8.0

GCR_URL=k8s.gcr.io
ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers

images=(kube-proxy:${KUBE_VERSION}
kube-scheduler:${KUBE_VERSION}
kube-controller-manager:${KUBE_VERSION}
kube-apiserver:${KUBE_VERSION}
pause:${KUBE_PAUSE_VERSION}
etcd:${ETCD_VERSION}
coredns:${CORE_DNS_VERSION})

for imageName in ${images[@]} ; do
docker pull $ALIYUN_URL/$imageName
docker tag  $ALIYUN_URL/$imageName $GCR_URL/$imageName
docker rmi $ALIYUN_URL/$imageName
done

docker tag k8s.gcr.io/coredns:1.8.0 k8s.gcr.io/coredns/coredns:v1.8.0
echo '镜像下载成功,将打印镜像列表';
docker images|grep k8s.gcr.io
echo '将执行 kubeadm config images list';
kubeadm config images list
echo '请对比镜像的名称和tag';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值