k8s 1.17.3 集群搭建之kubeadm简易安装方法

运行如下脚本

#最小化安装没有yum-utils
yum -y install yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache
#安装docker
yum -y install docker-ce
#设置docker镜像加速
echo '{"registry-mirrors": ["http://hub-mirror.c.163.com"]}'>/etc/docker/daemon.json
#重启生效
systemctl start docker & systemctl enable docker
#禁用swap,否则kubelet无法正常使用
sed -i '/ swap / s/^/#/' /etc/fstab
swapoff -a
#关闭防火墙,各种端口访问简化设置
systemctl stop firewalld & systemctl disable firewalld
#配置K8S软件源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
exclude=kube*
EOF
#目前kubelet还不支持selinux
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
#安装kubelet kubeadmin kubectl
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet
#官方说是有些用户反映CentOS的BUG
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

#get latest packages
yum update

下载镜像

使用如下命令检查所需镜像。

kubeadm config images list

修改如下脚本的KUBE_VERSION为上面命令里面获取的版本号,保存并运行。

cat>pull_images.sh<<'EOF'
#!/bin/bash
KUBE_VERSION=v1.17.3
FLANNEL_VERSION=v0.11.0
KUBE_PAUSE_VERSION=3.1
ETCD_VERSION=3.4.3-0
DNS_VERSION=1.6.5
prefix=registry.cn-chengdu.aliyuncs.com/gcrs
images=(
        kube-proxy-amd64:${KUBE_VERSION}
        kube-scheduler-amd64:${KUBE_VERSION}
        kube-controller-manager-amd64:${KUBE_VERSION}
        kube-apiserver-amd64:${KUBE_VERSION}
        pause:${KUBE_PAUSE_VERSION}
        etcd-amd64:${ETCD_VERSION}
        coredns:${DNS_VERSION}
        )
for image in ${images[@]}
do
NEW_IMAGE=`echo ${image}|awk '{gsub(/-amd64/,"",$0);print}'`
echo ${NEW_IMAGE}
docker pull ${prefix}/${image}
docker tag ${prefix}/${image} k8s.gcr.io/${NEW_IMAGE}
docker rmi ${prefix}/${image}
done
#prefix仓库里面没有flannel,单独拉取
docker pull quay-mirror.qiniu.com/coreos/flannel:${FLANNEL_VERSION}-amd64
docker tag quay-mirror.qiniu.com/coreos/flannel:${FLANNEL_VERSION}-amd64 quay.io/coreos/flannel:${FLANNEL_VERSION}-amd64 
EOF
bash pull_images.sh
#不执行如下命令运行kubectl时会报错:The connection to the server localhost:8080 was refused
export KUBECONFIG=/etc/kubernetes/admin.conf
#简化kubectl命令输入
cat >> ~/.bashrc <<EOF
alias k='kubectl'
alias kk='kubectl -n kube-system'
export KUBECONFIG=/etc/kubernetes/admin.conf
EOF
source ~/.bashrc

至此模板结点已经配置完成!

生成node1

关机,在node0上右键选择复制,输入node1,勾选初使化所有网卡的MAC地址,点击继续,选择完全复制,点击继续,选择当前电脑虚拟状态,点击复制。参照node0配置好端口转发。

集群安装

在node0上执行如下初使化集群。

#设置主机名为node0
hostnamectl set-hostname node0
kubeadm init --pod-network-cidr=10.244.0.0/16 --kubernetes-version=v1.17.0 --apiserver-advertise-address=192.168.0.4
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml

单结点使用如下命令去除污点,使得master也成为工作结点

kubectl taint nodes --all node-role.kubernetes.io/master-

记录下如上命令最后的输出,用于其它结点加入集群。

kubeadm join 192.168.0.2:6443 --token r19zrj.kvphznlyisn021sf \
    --discovery-token-ca-cert-hash sha256:86deab015a0713811e3e05b1cbecd55f85b79c43c3f16460a2f4627cfae0cdef

启动node1,在node0上执行如下命令将配置文件分发到node1,方便使用。

scp /etc/kubernetes/admin.conf root@192.168.0.3:/etc/kubernetes/admin.conf

node1上运行如下命令设置主机名

hostnamectl set-hostname node1

运行如上的kubeadm join加入集群,至此,2节点集群创建完成!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值