一、環境準備
注意:在k8-smaster、k8s-node-1和k8s-node-2進行準備工作配置。
1、內核升級
[root@k8s-master ~] rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm[root@k8s-master ~] yum --enablerepo=elrepo-kernel install kernel-ml kernel-ml-devel -y[root@k8s-master ~] grub2-set-default &34;[root@k8s-master ~] systemctl stop firewalld.service[root@k8s-master ~]swapoff -a vim /etc/fstab
4、關閉 SELinux
[root@k8s-master ~] vim /etc/sysctl.d/k8s.conf添加:net.ipv4.ip_forward = 1net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1net.ipv6.conf.all.disable_ipv6 = 0net.ipv6.conf.default.forwarding = 1net.ipv6.conf.all.forwarding = 1vm.swappiness=0vm.overcommit_memory=1vm.panic_on_oom=0fs.inotify.max_user_watches=89100fs.file-max=52706963fs.nr_open=52706963net.core.default_qdisc = fqnet.ipv4.tcp_congestion_control = bbr [root@k8s-master ~] sysctl -p
二、安裝docker-ce-19
注意:在k8-smaster、k8s-node-1、k8s-node-2安裝Docker。
[root@k8s-master ~] yum -y install docker-ce[root@k8s-master ~] systemctl start docker.service[root@k8s-master ~] docker info
三、安裝 Kubeadm:v1.18.6
注意:在k8-smaster、k8s-node-1和k8s-node-2中安裝Kubeadm。
1、安裝ipvsadm模塊
[root@k8s-master ~] modprobe -- ip_vs modprobe -- ip_vs_rr modprobe -- ip_vs_wrr modprobe -- ip_vs_sh modprobe -- nf_conntrack_ipv4[root@k8s-master ~] vim /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0 [root@k8s-master ~] yum clean all[root@k8s-master ~] yum -y install kubelet kubeadm kubectl systemctl enable kubelet.service[root@k8s-master ~] systemctl status kubelet.service
注意:此時kubelet.service服務是不會啟動的,等到kubelet.service初始化後才會啟動。
4、創建kubernetes集群
(1)查看該版本的容器鏡像版本
[root@k8s-master ~] vim k8s-dowm-images.sh添加: 使用如下腳本下載國內鏡像,並修改tag為google的tagset -eKUBE_VERSION=v1.18.6KUBE_PAUSE_VERSION=3.2ETCD_VERSION=3.4.3-0CORE_DNS_VERSION=1.6.7 GCR_URL=k8s.gcr.ioALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers images=(kube-proxy:${KUBE_VERSION}kube-scheduler:${KUBE_VERSION}kube-controller-manager:${KUBE_VERSION}kube-apiserver:${KUBE_VERSION}pause:${KUBE_PAUSE_VERSION}etcd:${ETCD_VERSION}coredns:${CORE_DNS_VERSION}) for imageName in ${images[@]} ; do docker pull $ALIYUN_URL/$imageName docker tag $ALIYUN_URL/$imageName $GCR_URL/$imageName docker rmi $ALIYUN_URL/$imageNamedone [root@k8s-master ~] ./k8s-dowm-images.sh或者輸入下載命令下載鏡像[root@k8s-master ~] docker images
(3)初始化kubernetes集群
注意:在k8-smaster中進行初始化操作。
[root@k8s-master ~] systemctl status kubelet.service
[root@k8s-master ~] mkdir -p $HOME/.kube[root@k8s-master ~] chown $(id -u):$(id -g) $HOME/.kube/config
(6)將node節點加入Kubernetes群集
查看token[root@k8s-master ~] kubeadm token create --print-join-command
將node節點加入群集
注意:在k8-node-1和k8-node-2中進行操作。
[root@k8s-node-1 ~] kubeadm join 192.168.1.3:6443 --token rkaf1i.y7m2u7z068tgw7os --discovery-token-ca-cert-hash sha256:09d6bd168550b25e30a43e7bda6db0ad650840d0ce5aa342e7c72b03d3805dc3
(7)查看群集運行狀態
[root@k8s-master ~] kubectl get nodes
注釋:
NotReady:未準備好。原因是沒有配置網絡。
四、設置flannel網絡
注意:在k8s-master、k8-node-1和k8-node-2中部署Flannel網絡。
1、下載cni軟體
[root@k8s-master ~] mkdir /opt/cni/bin -p[root@k8s-master ~] wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
4、下載鏡像
[root@k8s-master ~] vim kube-flannel.yml修改: &34;: &34;, 注意與master初始化保持一致。--pod-network-cidr=10.244.0.0/16 &34;: { &34;: &34; }……「name」: 「cbr0」, 「cniVersion」: 「0.3.1」, 添加此行,確保pod之間能夠通信。
6、創建flannel資源
[root@k8s-master ~] kubectl get pods -n kube-system
[root@k8s-master ~] kubectl get pods -n kube-system -o wide | grep flannel
8、驗證Flannel網絡
(1)在master上查看ip地址狀態
[root@master ~] ifconfig flannel.1
註:Flannel與cni0接口
(2)在node-1上查看ip地址狀態
[root@k8s-node-1 ~] ifconfig flannel.1 && ifconfig cni0
(3)在node-2上查看ip地址狀態
[root@k8s-node-2 ~] ifconfig flannel.1 && ifconfig cni0
(4)檢查通信狀況
註:ping Node節點中cni的IP,能通信為正常!
[root@k8s-master ~] ping 10.244.2.1
五、Kubernetes群集測試
1、設置命令行自動補全功能
[root@k8s-master ~] source <(kubectl completion bash)
2查看節點狀態
(1)查看節點
[root@k8s-master ~] kubectl get nodes -o wide
[root@k8s-master ~] kubectl version
到此,kubernetes群集部署完畢!
六、安裝kubernetes1.18.6的web-ui端:
1、下載dashboard配置文件
[root@k8s-master ~] cat recommended.yaml | grep image:
[root@k8s-master ~] docker pull kubernetesui/metrics-scraper:v1.0.4
3、修改配置文件
[root@k8s-master ~] kubectl apply -f recommended.yaml
[root@k8s-master ~] kubectl get pods -n kubernetes-dashboard
[root@k8s-master ~] kubectl get service --all-namespaces或者[root@k8s-master ~] kubectl describe service kubernetes-dashboard -n kubernetes-dashboard
5、創建管理員帳號
創建一個專用的 serviceaccount 帳號 dashboard-admin
[root@k8s-master ~] 綁定角色 cluster-admin
[root@k8s-master ~] kubectl get sa -n kube-system
[root@k8s-master ~] kubectl get secret --all-namespaces
6、獲取dashboard-admin 的token值
[root@k8s-master ~] firefox https://192.168.1.1:30000/ &
首次方式需要添加安全例外。
使用Token認證登錄,將之前查詢的Token值複製粘貼過來即可。
登錄成功後