k8s二进制简易搭建笔记

本文记录了在192.168.201.41-43节点上手动搭建k8s二进制版集群的过程,涉及etcd集群部署、master及node组件配置。详细讲解了Chrony时间同步、证书管理、etcd集群状态检查等关键步骤,旨在提供一个简单的k8s集群搭建笔记。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境

192.168.201.41
etcd01、master(apiserver、scheduler、controller-manager)
192.168.201.42
etcd02、node1(kubelet、proxy、docker、flannel)
192.168.201.43
etcd03、node2(kubelet、proxy、docker、flannel)
在这里插入图片描述

系统准备

#systemctl stop firewalld #临时关闭防火墙
#systemctl disable firewalld #关闭开机启动
#systemctl list-unit-files #查看服务是否开机启动
#setenforce 0 #临时设置selinux为permissive
#vi /etc/selinux/config 
SELINUX=disabled
#swapoff -a  # 临时关闭swap
#vim /etc/fstab  # 永久关闭swap
#timedatectl list-timezones # 列出所有时区
#timedatectl set-local-rtc 1 # 将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间
#timedatectl set-timezone Asia/Shanghai # 设置系统时区为上海,实际就是# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#timedatectl set-ntp true #设置允许ntp同步
#hostnamectl set-hostname master1 #修改主机名为master1
#vi /etc/hosts #添加hosts中主机名
#yum -y install chrony
#vi /etc/chrony.conf #查看同步配置文件
#chronyc sources -v #查看同步服务器情况
#chronyc tracking #查看最后一次同步情况

部署etcd集群

#./cfssl.sh #在etcd服务器先执行cfssl.sh,用于下载cfssl。Cfssl与openssl区别在于cfssl可以使用json格式,较方便。
#cat cfssl.sh #查看cfssl.sh文件
curl -L https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -o /usr/local/bin/cfssl
curl -L https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -o /usr/local/bin/cfssljson
curl -L https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -o /usr/local/bin/cfssl-certinfo
chmod +x /usr/local/bin/cfssl /usr/local/bin/cfssljson /usr/local/bin/cfssl-certinfo
#bash etcd-cert.sh #执行etcd-cert.sh中的ca-config.json部分,用于配置CA选项,生成CA根证书。ca-csr.json部分,用于生成CA 证书签名请求(CSR)的JSON文件,执行后生成ca.pem与ca-key.pem;执行etcd-cert.sh中的server-csr.json部分,为etcd服务器颁发证书生成server.pem与server-key.pem。(指定ETCD所有服务器,可以用IP,也可以用域名)
#tar -xvf etcd-v3.3.10-linux-amd64.tar.gz #二进制包下载地址,https://github.com/etcd-io/etcd/releases;
#mkdir /opt/etcd/{bin,cfg,ssl} #在/opt/etcd/目录下创建对应的bin、cfg、ssl目录;
#cp etcd etcdctl /opt/etcd/bin #将二进制包的etcd、etcdctl可执行文件放到bin目录下;
#cp *.pem /opt/etcd/ssl 将ETCD上生成的*.pem复制到/opt/etcd/ssl目录下;
#./etcd.sh etcd01 192.168.201.41 etcd02=https://192.168.201.42:2380,etcd03=https://192.168.201.43:2380 #执行etcd.sh,查看脚本中执行例子,用于配置ETCD服务并等待其它节点加入
#scp -r root@192.168.201.41:/opt/etcd /opt 
#scp  root@192.168.201.41:/usr/lib/systemd/system/etcd.service /usr/lib/systemd/system/etcd.service  #将/opt/etcd文件夹、/usr/lib/systemd/system/etcd.service复制到其它两台ETCD服务器上。修改另外两台etcd的etcd.service,名称、IP。
#systemctl start etcd #然后systemctl启动。
#/opt/etcd/bin/etcdctl --ca-file=/opt/etcd/ssl/ca.pem --cert-file=/opt/etcd/ssl/server.pem --key-file=/opt/etcd/ssl/server-key.pem --endpoints="https://192.168.201.41:2379,https://192.168.201.42:2379,https://192.168.201.43:2379"  cluster-health #查看集群状态(查看笔记)
#wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
#yum -y install docker-ce-18.06.1.ce-3.el7
#systemctl enable docker && systemctl start docker
#docker --version
Docker version 18.06.1-ce, build e68fc7a #在node节点安装docker;
#rm /usr/lib/systemd/system/docker.service #安装后自带的docker.service需要移除掉,不然会与flannel.sh生成的服务文件冲突
#/opt/etcd/bin/etcdctl \
--ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem \
--endpoints="https://192.168.0.x:2379,https://192.168.0.x:2379,https://192.168.0.x:2379" \
put /coreos.com/network/config '{ "Network": "172.17.0.0/16", "Backend": {"Type": "vxlan"}}' #写入分配的子网段到etcd,供flanneld使用(子网是为每个docker节点分配一个小子网,flanneld保证每个节点都是唯一的IP网段)
#tar -xvf flannel-v0.12.0-linux-amd64.tar.gz #解压flannel,可从官网https://github.com/coreos/flannel/releases下载
#mkdir /opt/kubernetes/{cfg,bin,ssl} -p
#mv flanneld mk-docker-opts.sh /opt/kubernetes/bin/ #mk-docker-opts.sh用于生成一个子网,写到一个文件中,docker读取此文件进行启动
#bash flannel.sh https://192.168.201.41:2379,https://192.168.201.42:2379,https://192.168.201.43:2379 #使用flannel.sh文件启动flannel。文件前半部分是指定ETCd地址和配置证书;文件后半部分是生成system;文件最后是docker配置文件;
#cat /usr/lib/systemd/system/dockerd.service #文件中这两行主要是用于让docker与flannel进行整合,让docker启动时指定子网配置文件
EnvironmentFile=/run/flannel/subnet.env
ExecStart=/usr/bin/dockerd $DOCKER_NETWORK_OPTIONS
#systecmctl daemon-reload
#systemctl restart docker
#ip addr #查看docker 与flannel,网段是一样的
#其余etcd也重复上面步骤,安装flannel,然后ping网络进行验证。再分别创建docker,进行网络ping验证。

查看etcd-cert.sh文件

#cat etcd-cert.sh 
cat > ca-config.json <<EOF
{
  "signing": {
    "default": {
      "expiry": "87600h"
    },
    "profiles": {
      "www": {
         "expiry": "87600h",
         "usages": [
            "signing",
            "key encipherment",
            "server auth",
            "client auth"
        ]
      }
    }
  }
}
EOF

cat > ca-csr.json <<EOF
{
    "CN": "etcd CA",
    "key": {
        "algo": "rsa",
        "size": 2048
    },
    "names": [
        {
            "C": "CN",
            "L": "Beijing",
            "ST": "Beijing"
        }
    ]
}
EOF

cfssl gencert -initca ca-csr.json | cfssljson -bare ca -

#-----------------------

cat > server-csr.json <<EOF
{
    "CN": "etcd",
    "hosts": [
    "10.206.240.188",
    "10.206.240.189",
    "10.206.240.111"
    ],
    "key": {
        "algo": "rsa",
        "size": 2048
    },
    "names": [
        {
            "C": "CN",
            "L": "BeiJing",
            "ST": "BeiJing"
        }
    ]
}
EOF
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值