kubernetes集群 安装

kubernetes集群 安装

基于ubuntu20.04

每个节点都要首先安装docker

apt install -y docker.io
sudo service docker start # 启动docker服务

每个节点都要配置docker的镜像源

cat <<EOF | sudo tee /etc/docker/daemon.json
{
	"registry-mirrors": [
        "http://hub-mirror.c.163.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://registry.docker-cn.com"
    ],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

每个节点都要重新启动docker

sudo systemctl enable docker	 # 配置Docker为开机自启动
sudo systemctl daemon-reload	 # 重新加载服务的配置文件
sudo systemctl restart docker  # 重启Docker

给主节点和其他节点修改主机名

# 每个节点分别设置对应主机名
hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2

为了让 Kubernetes 能够检查、转发网络流量,需要修改 iptables 的配置,并启用 br_netfilter模块。每个节点都要配置。

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
net.ipv4.ip_forward=1 # better than modify /etc/sysctl.conf
EOF

sudo sysctl --system # 手动加载所有的配置文件

每个节点都要关闭 Linuxswap 分区,提升 Kubernetes 的性能。

# 临时关闭
sudo swapoff -a
# 永久关闭:注释 swap 挂载,给 swap 这行开头加一下 "#" 注释
sudo sed -ri '/\sswap\s/s/^#?/#/' /etc/fstab 

每个节点都要使用阿里云镜像

sudo apt install -y apt-transport-https ca-certificates curl

curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -

cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

sudo apt update

每个节点都要下载kubeadm kubectl kubelet

sudo apt install -y kubeadm=1.23.3-00 kubelet=1.23.3-00 kubectl=1.23.3-00

每个节点都要配置kubernetes为开机自启动

systemctl enable kubelet.service # 配置kubelet为开机自启动

每个节点都要锁定他们之间的版本

sudo apt-mark hold kubeadm kubelet kubectl

每个节点提前下载kubernetes需要的镜像

repo=registry.aliyuncs.com/google_containers

for name in `kubeadm config images list --kubernetes-version v1.23.3`; do

    src_name=${name#k8s.gcr.io/}
    src_name=${src_name#coredns/}

    docker pull $repo/$src_name

    docker tag $repo/$src_name $name
    docker rmi $repo/$src_name
done

执行脚本即可

初始化master节点,在master节点执行以下命令

kubeadm init --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
>     --service-cidr=10.10.0.0/16 \
>     --pod-network-cidr=10.244.0.0/16 \
>     --kubernetes-version=v1.23.3

初始化成功后,会输出一个从节点加入集群的命令,等会会用到

kubeadm join 192.168.87.131:6443 --token ipacaz.exoa769a4fjzxscn \
	--discovery-token-ca-cert-hash sha256:8c8ff8542a5efbbb4905aa17b7cc277456c0c64760d1fd90216e4ec881fa74b6

将kubernetes配置文件 输出到环境变量中,在master节点执行以下命令

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile

配置kubernetes的网络环境,首先在每个节点执行以下命令,获取calico网络的镜像

# 从calico.yaml文件中,找到需要下载的镜像源
docker pull docker.io/calico/kube-controllers:v3.24.5
docker pull docker.io/calico/node:v3.24.5
docker pull docker.io/calico/pod2daemon-flexvol:v3.24.5
docker pull docker.io/calico/cni:v3.24.5

获取calico的yaml文件

wget https://projectcalico.docs.tigera.io/archive/v3.24/manifests/calico.yaml

在主节点上启动calico插件

kubectl apply -f calico.yaml

在从节点执行加入主节点的命令:

kubeadm join 192.168.87.131:6443 --token ipacaz.exoa769a4fjzxscn \
	--discovery-token-ca-cert-hash sha256:8c8ff8542a5efbbb4905aa17b7cc277456c0c64760d1fd90216e4ec881fa74b6

然后就可以在从节点上执行 kubectl get nodes查看集群的节点情况了,但是这个时候回报错8080啥错误,需要将master节点的/etc/kubernetes/admin.conf复制到从节点的对应目录下,然后在从节点执行:

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile

这样就可以使用kubectl命令了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值