docker安装部署(kubeadm方式亲测)

Posted 月疯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker安装部署(kubeadm方式亲测)相关的知识,希望对你有一定的参考价值。

准备工作:

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

关闭selinux

sed -i 's/enforcing/disabled/' /etc/selinux/comfig    #永久
setenforce 0   #临时

#关闭swap

swapoff -a   #临时
sed -ri 's/.*swap.*/#&/' /etc/fstab     #永久 

根据规划设置主机名

hostnamectl set-hostname <hostname> 

#在master添加hosts

cat >> /etc/hosts <<EOF
192.168.208.200 k8master
192.168.208.201 k8node1
EOF 


将桥接的IPv4流量传递到iptables的链 

cat > /etc/sysctl.d/k8s.conf <<EOF
net.brifge-nf-call-iptables = 1
net.bridge-nf-call-iptables = 1
EOF

sysctl --system   #生效 

时间同步

yum install ntpdate -y
ntpdate time.windows.com 


所有节点安装Docker/kubeadm/kubelet

1、先安装wget

yum -y install wget

每个节点都安装:

俩个节点都利用wget安装docker

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

安装docker:

yum -y install docker-ce-18.06.1.ce-3.el7

docker设置开机启动:

systemctl enable docker && systemctl start docker  

查看版本号:

docker --version 

把docker改为阿里云镜像

cat > /etc/docker/daemon.json <<EOF

"registry-mirrors":["https://b9pmyelo.mirroe.aliyuncs.com"]

EOF 

改完之后重启docker

systemctl restart docker 

设置阿里云YUM源软件

cat >/etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF 

安装kubeadm,kubelet和kubectl
版本更新频繁,这里指定版本号部署

yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0

设置开机启动:

systemctl enable kubelet  

部署Kubernetes Master(在Master执行)

kubeadm init \\
--apiserver-advertise-address=192.168.208.200 \\
--image-repository registry.aliyuncs.com/google_containers \\
--kubernetes-version v1.18.0 \\
--service-cidr=10.96.0.0/12 \\
--pod-network-cidr=10.244.0.0/16 

 apiserver-advertise-address 当前节点ip

image-repository registry.aliyuncs.com/google_containers 使用阿里云镜像

kubernetes-version v1.18.0  k8s的版本号

service-cidr  ip只要和节点不冲突就好

pod-network-cidr  ip只要和节点不冲突就好

出现bug:

error execution phase preflight: [preflight] Some fatal errors occurred:
    [ERROR NumCPU]: the number of available CPUs 1 is less than the required 2
    [ERROR Swap]: running with swap on is not supported. Please disable swap
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=... 

 忘记关闭swap,设置了还是不行

下次提示虚拟机的cpu核数最少需要2个,修改虚拟机的设置:

修改之后ok了。

成功之后产生的日志:

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.208.200:6443 --token 60jyuo.6h87xmlrptyoll46 \\
    --discovery-token-ca-cert-hash sha256:9c8cfa54856d34c9eee214731f2557636d4c02753e935f8a8855680fe17add45 
[root@page01 huitao]# 

 

这一部分:

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

其他部分:

 kubeadm join 192.168.208.200:6443 --token 60jyuo.6h87xmlrptyoll46 \\
    --discovery-token-ca-cert-hash sha256:9c8cfa54856d34c9eee214731f2557636d4c02753e935f8a8855680fe17add45 

 查看拉取的镜像:

docker images

 默认拉去镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址。
使用kubectl工具

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

查看节点:

kubectl get nodes 

 

主节点page01已经有了。

给node节点加进集群:执行下面的命令即可

 kubeadm join 192.168.208.200:6443 --token 60jyuo.6h87xmlrptyoll46 \\
    --discovery-token-ca-cert-hash sha256:9c8cfa54856d34c9eee214731f2557636d4c02753e935f8a8855680fe17add45

默认token有效为24小时,当国旗以后,该token就不可用了。这时需要重新创建token,创建如下

kubeadm tokencreate --print-join-command 

现在还不能联网,部署CNI网络插件

wget https://raw.githubuser content.com/coreos/flannel/master/Documentation/kube-flannel.yml 

默认镜像无法访问,sed命令修改为docker hub镜像仓库

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

查看系统pod 

kubectl get pods -n kube-system 

测试kubernetes集群
在集群众创建一个pod,验证是否正常运行:
在网上拉取一个nginx镜像,测试一下 

kubectl create deployment nginx --image=nginx

对外暴露一个端口,80端口

kubectl expose deployment nginx --port=80 --type=NodePort 

查看对外端口

kubectl get pod,svc 

 node节点的ip+80:30910都可以访问到。

收工!!!!!!!!!!

以上是关于docker安装部署(kubeadm方式亲测)的主要内容,如果未能解决你的问题,请参考以下文章

使用kubeadm快速部署一个k8s集群(亲测有效)

使用kubeadm搭建高可用的K8S集群(2022年1月亲测有效)

1.k8s部署(安装Docker/kubeadm/kubelet, 部署Kubernetes Master, 加入Kubernetes Node, 部署容器网络(CNI),测试kubernetes集)

1.k8s部署(安装Docker/kubeadm/kubelet, 部署Kubernetes Master, 加入Kubernetes Node, 部署容器网络(CNI),测试kubernetes集)

1.k8s部署(安装Docker/kubeadm/kubelet, 部署Kubernetes Master, 加入Kubernetes Node, 部署容器网络(CNI),测试kubernetes集)

kubeadm部署k8s+docker+Flannel+dashboard+Harbor仓库