kubeadm 初始化kubectl集群

kubeadm的方式部署,每个节点只需要安装kubelet和docker
将kube-controller-manager、kube-schedule和api-server以POD的方式部署
将node上的kube-proxy也是以POD的方式部署

安装步骤:

step1:
master、node 安装kubelet、kubeadm、docker

step2:
master:kubeadm init

step3:
node:kubeadm join

安装前准备:
1、配置/etc/hosts、使得master和node能互相解析
2、配置ntp时间同步

yum -y install ntp
vi /etc/ntp.conf
restrict ntp.ntsc.ac.cn nomodify notrap noquery
server ntp.ntsc.ac.cn
ntpdate -u ntp.ntsc.ac.cn

master 配置

需要pull的image

k8s.gcr.io/kube-apiserver:v1.15.3
k8s.gcr.io/kube-controller-manager:v1.15.3
k8s.gcr.io/kube-scheduler:v1.15.3
k8s.gcr.io/kube-proxy:v1.15.3
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.10
k8s.gcr.io/coredns:1.3.1

由于国内某不可言说的原因,在用kubeadm的时候无法pull到镜像,所以从docker hub上的googlecontainer上pull镜像,然后重新打tag

docker pull googlecontainer/kube-apiserver:v1.15.3
docker pull googlecontainer/kube-controller-manager:v1.15.3
docker pull googlecontainer/kube-scheduler:v1.15.3
docker pull googlecontainer/kube-proxy:v1.15.3
docker pull mirrorgooglecontainers/pause:3.1
docker pull mirrorgooglecontainers/etcd:3.3.10
docker pull coredns/coredns:1.3.1
   docker tag docker.io/googlecontainer/kube-proxy:v1.15.3 k8s.gcr.io/kube-proxy:v1.15.3
    docker image rm googlecontainer/kube-proxy:v1.15.3
    docker tag googlecontainer/kube-apiserver:v1.15.3 k8s.gcr.io/kube-apiserver:v1.15.3
    docker image rm googlecontainer/kube-apiserver:v1.15.3
    docker tag googlecontainer/kube-scheduler:v1.15.3 k8s.gcr.io/kube-scheduler:v1.15.3
    docker image rm googlecontainer/kube-scheduler:v1.15.3
    docker tag googlecontainer/kube-controller-manager:v1.15.3 k8s.gcr.io/kube-controller-manager:v1.15.3
    docker image rm googlecontainer/kube-controller-manager:v1.15.3
    docker tag coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1
    docker image rm coredns/coredns:1.3.1
    docker tag mirrorgooglecontainers/etcd:3.3.10 k8s.gcr.io/etcd:3.3.10
    docker image rm mirrorgooglecontainers/etcd:3.3.10
    docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
    docker image rm mirrorgooglecontainers/pause:3.1

k8s默认不允许开启swap,编辑kubelet配置文件,使其忽略swap错误

vi /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"

开始初始化master节点,注:***–ignore-preflight-errors=Swap*** 使其忽略swap错误

kubeadm init --kubernetes-version=v1.15.3  --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
kubeadm join 172.20.3.100:6443 --token h1f3ee.cpkf5sj6dzb2y478 \
    --discovery-token-ca-cert-hash sha256:064e0e4eaa12f427c3e22071795dfc9ff2c554fef1b758e1a54f119104cd5a58 

如果忘记了,使用kubeadm token create --print-join-command 获取

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

安装flannel组建
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

验证STATUS为ready

[root@master ~]# kubectl get nodes
NAME     STATUS   ROLES    AGE   VERSION
master   Ready    master   75m   v1.15.3

确认flannel的image已经pull到本地

[root@master ~]# docker image ls | grep flannel
quay.io/coreos/flannel               v0.11.0-amd64       ff281650a721        7 months ago        52.6MB
[root@master ~]# kubectl get ns
NAME              STATUS   AGE
default           Active   77m
kube-node-lease   Active   77m
kube-public       Active   77m
kube-system       Active   77m

查看kube-system的pods运行正常

[root@master ~]# kubectl get pods -n kube-system
NAME                             READY   STATUS    RESTARTS   AGE
coredns-5c98db65d4-smqqf         1/1     Running   0          76m
coredns-5c98db65d4-wxksp         1/1     Running   0          76m
etcd-master                      1/1     Running   0          76m
kube-apiserver-master            1/1     Running   0          76m
kube-controller-manager-master   1/1     Running   0          76m
kube-flannel-ds-amd64-rxhds      1/1     Running   0          4m19s
kube-proxy-jk2gz                 1/1     Running   0          76m
kube-scheduler-master            1/1     Running   0          76m

node节点配置

安装docker-ce kubelet kubeadm kubectl包

yum  install docker-ce kubelet kubeadm kubectl
systemctl enable docker
systemctl enable kubelet

配置忽略swap报错参数

vi /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"

加入集群

kubeadm join 192.168.153.209:6443 --token xskbnl.jv0en1vbgisc0b5g     --discovery-token-ca-cert-hash sha256:63dfdc6d871337649e9094378a9ea957fa56c5269703b6f50184e2a9db5d0b33 --ignore-preflight-errors=Swap

最后检查集群状态和PODs状态

kubectl get nodes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值