kubernetesa安装--19.13.0版本
1.安装前准备工作
设定时钟同步
yum install chrony -y
systemctl start chronyd.service
systemctl enable chronyd.service
主机名称解析
关闭防火墙
systemctl stop firewalld.service
systemctl enable firewalld.service
关闭禁用selinux
禁止Swap
free -m 查看一下
vim /etc/fstab
注释掉swap那行
启用ipvs模块
vim /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
ipvs_mods_dir="/usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs"
for mod in $(ls $ipvs_mods_dir | grep -o "^[^.]*"); do
/sbin/modinfo -F filename $mod &> /dev/null
if [ $? -eq 0 ]; then
/sbin/modprobe $mod
fi
done
修改权限
chmod +x /etc/sysconfig/modules/ipvs.modules
执行
bash /etc/sysconfig/modules/ipvs.modules
安装docker
wget https://mirrors.aliyun.com/docker-ce/linux/centos/
cd /etc/yum.repos.d/
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce
修改docker启动文件
vim /usr/lib/systemd/system/docker.service
添加如下内容:
ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT
systemctl daemon-reload
systemctl start docker
systemctl enable docker
systemctl status docker
修改docker的docker info 中cgroup
创建文件
vim /etc/docker/daemon.json
{ "exec-opts": ["native.cgroupdriver=systemd"] }
重启服务
systemctl restart docker
sysctl -a | grep bridge 查看是否有3个1
没有就设置:
sysctl -w net.bridge.bridge-nf-call-iptables=1
sysctl -w net.bridge.bridge-nf-call-ip6tables=1
sysctl -w net.bridge.bridge-nf-call-arptables=1
开始安装kubernetes包
vim kubernetes.repo
[kubernetes]
name=Kubernetes Repository
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
yum repolist 检查一下
yum list all | grep "^kube"
安装指定版本
yum install kubelet-1.19.0 kubectl-1.19.0 kubeadm-1.19.0 -y
禁止swap
vim /etc/sysconfig/kubelet
内容为KUBELET_EXTRA_ARGS="--fail-swap-on=false"
下面是master节点操作
kubeadm config images list #通过该命令查看所需要的镜像版本
k8s.gcr.io/kube-apiserver:v1.19.13
k8s.gcr.io/kube-controller-manager:v1.19.13
k8s.gcr.io/kube-scheduler:v1.19.13
k8s.gcr.io/kube-proxy:v1.19.13
k8s.gcr.io/pause:3.2
k8s.gcr.io/etcd:3.4.9-1
k8s.gcr.io/coredns:1.7.0
通过阿里云仓库下载该版本镜像
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.19.13
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.19.13
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.19.13
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.19.13
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.9-1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.7.0
下载好的镜像如下:
[root@k8s-master01 yum.repos.d]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy v1.19.13 046ec6b49f0b 3 weeks ago 98.9MB
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver v1.19.13 76696340d799 3 weeks ago 119MB
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager v1.19.13 90f4ff69a0bf 3 weeks ago 111MB
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler v1.19.13 35036a0cd23a 3 weeks ago 46.5MB
registry.cn-hangzhou.aliyuncs.com/google_containers/etcd 3.4.9-1 d4ca8726196c 13 months ago 253MB
registry.cn-hangzhou.aliyuncs.com/google_containers/coredns 1.7.0 bfe3a36ebd25 13 months ago 45.2MB
registry.cn-hangzhou.aliyuncs.com/google_containers/pause 3.2 80d28bedfe5d 18 months ago 683kB
打标签:
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.19.13 k8s.gcr.io/kube-proxy:v1.19.13
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.19.13 k8s.gcr.io/kube-apiserver:v1.19.13
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.19.13 k8s.gcr.io/kube-controller-manager:v1.19.13
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.19.13 k8s.gcr.io/kube-scheduler:v1.19.13
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.9-1 k8s.gcr.io/etcd:3.4.9-1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.7.0 k8s.gcr.io/coredns:1.7.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2
初始化master
kubeadm init --kubernetes-version="v1.19.13" --pod-network-cidr="10.244.0.0/16" --ignore-preflight-errors=swap
结尾出现的内容如下:需要记下来,等会node加入需要
kubeadm join masterIP:6443 --token 0seu7l.d9ua3hsrq545f9th \
--discovery-token-ca-cert-hash sha256:94767798f3107814776cd8137a7670391892d921925c0c1bf772240cee173a92
这个加入token24小时就过期
过期之后需要重新生成
kuberadm token create :生成token
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //' 生成ca的sha256 hash值
初始化后续步骤
cd 到家目录
mkdir .kube
cp /etc/kubernetes/admin.conf .kube/config
scp /etc/kubernetes/admin.conf nodeIP:.kube/config 分发文件到node节点,命名为config
查看集群状态
kubectl get nodes
状态是Notready(未就绪)
因为没有安装网络插件
安装flannel插件
输入如下命令会自己去拉去flannel镜像
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
然后输入命令查看flannel镜像是否获取完成
kubectl get pod -n kube-system
结果是:
[root@k8s-master01 ~]# kubectl get pod -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-f9fd979d6-tgrl9 0/1 Pending 0 5m8s
coredns-f9fd979d6-xch4z 0/1 Pending 0 5m8s
etcd-k8s-master01 1/1 Running 0 5m19s
kube-apiserver-k8s-master01 1/1 Running 0 5m19s
kube-controller-manager-k8s-master01 1/1 Running 0 5m19s
kube-flannel-ds-ctrph 0/1 Init:0/1 0 3m30s
kube-proxy-df6s2 1/1 Running 0 5m7s
kube-scheduler-k8s-master01 1/1 Running 0 5m19s
好几分钟过去还是这样,说明镜像拉取不了
kubectl describe pod kube-flannel-ds-ctrph -n kube-system
查看 pod
结果是:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 13m default-scheduler Successfully assigned kube-system/kube-flannel-ds-ctrph to k8s-master01
Warning Failed 6m50s kubelet, k8s-master01 Failed to pull image "quay.io/coreos/flannel:v0.14.0": rpc error: code = Unknown desc = context canceled
Warning Failed 6m50s kubelet, k8s-master01 Error: ErrImagePull
Normal BackOff 6m50s kubelet, k8s-master01 Back-off pulling image "quay.io/coreos/flannel:v0.14.0"
Warning Failed 6m50s kubelet, k8s-master01 Error: ImagePullBackOff
Normal Pulling 6m35s (x2 over 13m) kubelet, k8s-master01 Pulling image "quay.io/coreos/flannel:v0.14.0"
得到flannel版本信息
开始下载
[root@k8s-master01 ~]# docker pull quay.io/coreos/flannel:v0.14.0
v0.14.0: Pulling from coreos/flannel
801bfaa63ef2: Pull complete
e4264a7179f6: Pull complete
bc75ea45ad2e: Pull complete
78648579d12a: Pull complete
3393447261e4: Pull complete
071b96dd834b: Pull complete
4de2f0468a91: Pull complete
Digest: sha256:4a330b2f2e74046e493b2edc30d61fdebbdddaaedcb32d62736f25be8d3c64d5
Status: Downloaded newer image for quay.io/coreos/flannel:v0.14.0
quay.io/coreos/flannel:v0.14.0
查看flannel状态
[root@k8s-master01 ~]# kubectl get pod -n kube-system | grep flannel
kube-flannel-ds-ctrph 1/1 Running 0 31m
查看nodes信息状态
[root@k8s-master01 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master01 Ready master 33m v1.19.0
到此master部署完成
下面node节点部署
通过阿里云仓库下载该版本镜像(node节点只需要3个镜像,下面2个加上flannel镜像)
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.19.13
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
下载好的镜像如下:
[root@k8s-master01 yum.repos.d]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy v1.19.13 046ec6b49f0b 3 weeks ago 98.9MB
registry.cn-hangzhou.aliyuncs.com/google_containers/pause 3.2 80d28bedfe5d 18 months ago 683kB
打标签:
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.19.13 k8s.gcr.io/kube-proxy:v1.19.13
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2
创建目录
mkdir .kube
在master节点通过scp分发文件
scp /etc/kubernetes/admin.conf nodeIP:.kube/config
安装flannel插件
输入如下命令会自己去拉去flannel镜像
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
输入命令查看flannel镜像是否获取完成
kubectl get pod -n kube-system
结果是:
[root@k8s-master01 ~]# kubectl get pod -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-f9fd979d6-ghms4 1/1 Running 0 27h
coredns-f9fd979d6-grd9d 1/1 Running 0 27h
etcd-k8s-master01 1/1 Running 0 27h
kube-apiserver-k8s-master01 1/1 Running 0 27h
kube-controller-manager-k8s-master01 1/1 Running 0 27h
kube-flannel-ds-mqkv2 1/1 Running 0 38m
kube-flannel-ds-nhst8 1/1 Running 0 38m
kube-flannel-ds-pgxs5 1/1 Running 0 38m
kube-proxy-7n9t5 1/1 Running 0 46m
kube-proxy-l429p 1/1 Running 0 27h
kube-proxy-wdfr4 1/1 Running 0 45m
kube-scheduler-k8s-master01 1/1 Running 0 27h
好几分钟过去还是这样,说明镜像拉取不了
kubectl describe pod kube-flannel-ds-ctrph -n kube-system
查看 pod
结果是:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 13m default-scheduler Successfully assigned kube-system/kube-flannel-ds-ctrph to k8s-master01
Warning Failed 6m50s kubelet, k8s-master01 Failed to pull image "quay.io/coreos/flannel:v0.14.0": rpc error: code = Unknown desc = context canceled
Warning Failed 6m50s kubelet, k8s-master01 Error: ErrImagePull
Normal BackOff 6m50s kubelet, k8s-master01 Back-off pulling image "quay.io/coreos/flannel:v0.14.0"
Warning Failed 6m50s kubelet, k8s-master01 Error: ImagePullBackOff
Normal Pulling 6m35s (x2 over 13m) kubelet, k8s-master01 Pulling image "quay.io/coreos/flannel:v0.14.0"
得到flannel版本信息
开始下载
[root@k8s-master01 ~]# docker pull quay.io/coreos/flannel:v0.14.0
v0.14.0: Pulling from coreos/flannel
801bfaa63ef2: Pull complete
e4264a7179f6: Pull complete
bc75ea45ad2e: Pull complete
78648579d12a: Pull complete
3393447261e4: Pull complete
071b96dd834b: Pull complete
4de2f0468a91: Pull complete
Digest: sha256:4a330b2f2e74046e493b2edc30d61fdebbdddaaedcb32d62736f25be8d3c64d5
Status: Downloaded newer image for quay.io/coreos/flannel:v0.14.0
quay.io/coreos/flannel:v0.14.0
最后在master节点查看
kubectl get nodes
[root@k8s-master01 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master01 Ready master 27h v1.19.0
k8s-node01 Ready <none> 47m v1.19.0
k8s-node02 Ready <none> 47m v1.19.0
浙公网安备 33010602011771号