Kubernetes---使用kubeadmin安装部署(第二次)

安装docker

sudo yum install -y yum-utils

 sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install docker-ce docker-ce-cli containerd.io

修改Docker的配置: vi /etc/docker/daemon.json,
k8s官方推荐docker等使用systemd作为cgroupdriver,
安装的docker是cgroupfs,不修改初始化kubeadm 会报错

{
  "exec-opts":["native.cgroupdriver=systemd"]
}

安装k8s

所有环境预处理,节点之间不能有重复的主机名、MAC地址或product_uuid

设置不同的hostname

hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node1
hostnamectl set-hostname k8s-node2

内网互信
保证可以互相通信,如果是在本地虚拟机可以设置host
使用云虚拟机IP不要选择172.17 因为安装docker会占用172.17网段

cat >>/etc/hosts<<EOF
192.168.56.103 k8s-master
192.168.56.105 k8s-node1
192.168.56.104 k8s-node2
EOF

保证每个虚拟机都可以通过主机ping 通其他虚拟机

禁用交换分区
在这里插入图片描述
Swap必须都是0

swapoff -a
sed -i ‘s/.swap./#&/’ /etc/fstab

#临时关闭
swapoff -a

# 永久关闭
sed -i 's/.*swap.*/#&/'  /etc/fstab

关闭SELinux

setenforce 0
sed -i ‘/^SELINUX=/c SELINUX=disabled’ /etc/selinux/config

命令临时生效:
setenforce 0 (临时生效可以直接用setenforce 0 )
            1 启用
            0 告警,不启用
            
永久生效:
>sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
SELINUX参数enforcing代表打开,disabled代表关闭
就是将SELINUX=enforcing改为SELINUX=disabled

允许 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 kubectl

# 指定下载源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[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

#安装
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

#启动
sudo systemctl enable --now kubelet

使用kubeadm引导启动集群

需要安装几个镜像,这些镜像可以提前自己下载

  • kube-apiserver
  • kube-proxy
  • kube-controller-manager
  • kube-scheduler
  • coredns
  • etcd
  • pause
主节点初始化

初始化前准备

vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
#将以下内容写入,kubelet.service.d/10-kubeadm.conf可能都需要自己创建

[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
EnvironmentFile=-/etc/default/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS

初始化


kubeadm init --kubernetes-version=1.22.1 \
--apiserver-advertise-address=192.168.56.103 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=177.177.0.0/16 \
--control-plane-endpoint=k8s-master


–apiserver-advertise-address 指定master与其它节点通信的接口
–pod-network-cidr 指定pod网络子网
–image-repository=registry.aliyuncs.com/google_containers初始化时可以添加下载镜像的源地址。
–control-plane-endpoint:master节点的域名
—service-cidr:service负载均衡时的网段

这些所有的ip地址网络范围不能重叠。

journalctl -xeu kubelet
如果初始化失败,可以查看日志

#重置kubeadm ,初始化失败后可重置kubeadm,再次初始化
kubeadm reset
rm -rf $HOME/.kube

初始化成功

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

You can now join any number of control-plane nodes by copying certificate authorities
and service account keys on each node and then running the following as root:

#在其他节点输入命令,其它节点以  主节点  的身份加入集群
  kubeadm join k8s-master:6443 --token 33fupc.j7vbltxxw8uckcrb \
	--discovery-token-ca-cert-hash sha256:3c69e3b0e73277abd67dbefdad718621e2bf50b5f3bff04b7a257c3f5555119a \
	--control-plane 

Then you can join any number of worker nodes by running the following on each as root:

#在其他节点输入命令,其它节点以  工作节点  的身份加入集群
kubeadm join k8s-master:6443 --token 33fupc.j7vbltxxw8uckcrb \
	--discovery-token-ca-cert-hash sha256:3c69e3b0e73277abd67dbefdad718621e2bf50b5f3bff04b7a257c3f5555119a 

按照提示执行命令

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown ( i d − u ) : (id -u): (idu):(id -g) $HOME/.kube/config

部署网络插件

初始化成功的时候已经给出提示

You should now deploy a pod network to the cluster.
Run “kubectl apply -f [podnetwork].yaml” with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/

下载calico

curl https://docs.projectcalico.org/manifests/calico.yaml -O

修改calico.yaml 文件

将value: "192.168.0.0/16"
修改为value: "177.177.0.0/16"
并将该行和上一行的注释去掉

安装

kubectl apply -f calico.yaml

从节点加入集群
如果不需要防火墙可以把防火墙关掉

systemctl disable firewalld --now

kubeadm join k8s-master:6443 --token 33fupc.j7vbltxxw8uckcrb \
	--discovery-token-ca-cert-hash sha256:3c69e3b0e73277abd67dbefdad718621e2bf50b5f3bff04b7a257c3f5555119a 

或者使用命令重新获得

kubeadm token create  --print-join-command

查看node

kubectl get nodes

世界地图矢量数据可以通过多种网站进行下载。以下是一些提供免费下载世界地图矢量数据的网站: 1. Open Street Map (https://www.openstreetmap.org/): 这个网站可以根据输入的经纬度或手动选定范围来导出目标区域的矢量图。导出的数据格式为osm格式,但只支持矩形范围的地图下载。 2. Geofabrik (http://download.geofabrik.de/): Geofabrik提供按洲际和国家快速下载全国范围的地图数据数据格式支持shape文件格式,包含多个独立图层,如道路、建筑、水域、交通、土地利用分类、自然景观等。数据每天更新一次。 3. bbbike (https://download.bbbike.org/osm/): bbbike提供全球主要的200多个城市的地图数据下载,也可以按照bbox进行下载。该网站还提供全球数据数据格式种类齐全,包括geojson、shp等。 4. GADM (https://gadm.org/index.html): GADM提供按国家或全球下载地图数据的服务。该网站提供多种格式的数据下载。 5. L7 AntV (https://l7.antv.antgroup.com/custom/tools/worldmap): L7 AntV是一个提供标准世界地图矢量数据免费下载的网站。支持多种数据格式下载,包括GeoJSON、KML、JSON、TopJSON、CSV和高清SVG格式等。可以下载中国省、市、县的矢量边界和世界各个国家的矢量边界数据。 以上这些网站都提供了世界地图矢量数据免费下载服务,你可以根据自己的需求选择合适的网站进行下载
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值