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/configYou 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集群(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集)