k8s環境搭建

一、安裝vmware

1、在windows上安裝虛擬機,在虛擬機上虛擬出3個linux系統,我這裡分別是master,node1,node2,確保三個linux虛擬機之間可以互相訪問

二、對安裝之後的操作系統進行初始化

1、關閉防火牆,三台機器全關閉
systemctl stop firewalld
2、關閉selinux,三台機器全關閉
sed -i 's/enforcing/disabled/' /etc/selinux/config
3、關閉swap ,三台機器全關閉
swapoff -a
4、設置主機名
hostnamectl set-hostname 主機名,三個主機名分別設置成master,node1和node2
5、在master添加hosts
[root@localhost etc]# cat hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.117.128 master 192.168.117.129 node1 192.168.117.130 node2
6、將橋接的ipv4的流量傳遞到iptables的鏈,三台機器設置一樣
cat > /etc/sysctl.d/k8s.conf <<EOF net.bridge.bridge‐nf‐call‐ip6tables= 1 net.bridge.bridge‐nf‐call‐iptables= 1 EOF
設置完成後要生效,執行sysctl --system
7、設置時間同步
yum install ntpdate -y
ntpdate time.windows.com

三、安裝docker、kubeadm、kubectl等

1、安裝docker

安裝依賴包:
yum install -y yum-utils
設置鏡像倉庫
yum-config-manager --add-repo //mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安裝docker服務
yum install docker-ce docker-ce-cli containerd.io -y
啟動docker服務
systemctl start docker

2、添加阿里雲軟件源,三台機器全部添加

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

3、安裝kubeadm、kubelet和kubectl,三台機器上安裝

yum install -y kubeadm-1.19.0 kubelet-1.19.0 kubectl-1.19.0
systemctl enable kubelet

四、在master節點上部署kubetnets

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

當看到successfully就表示init成功了

接着執行命令:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
在node節點中執行命令:
kubeadm join 192.168.117.128:6443 --token lhuydx.c2lk64q5k5sg4fbt \ --discovery-token-ca-cert-hash sha256:325b4eec0c85e88418dd4ee0e4b0e95608cfbeedbd7607e83cc0b34eb16bd6cc
執行完命令後,在master節點中執行命令查看是否假如

五、部署CNI網絡插件

在master機器上執行命令:
kubectl apply -f //raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
如果出現拒絕,則在host添加如下即可
185.199.108.133 raw.githubusercontent.com
執行上述命令後,在master執行:
kubectl get pods -n kube-system
下圖表示啟動成功

六,集群驗證

在kubenetes集群中創建一個pod
1、創建nginx
kubectl create deployment nginx --image=nginx
2、暴露端口
kubectl expose deployment nginx --port=80 --type=NodePort
3、查看端口
kubectl get pod,svc
4、任意一個node節點的ip加上端口訪問