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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值