上回书说到什么是K8s,这回就在我自己的虚拟机上搭建一个K8s集群;

一、安装K8S需要的软件包

yum install -y kubelet-1.23.1 kubeadm-1.23.1 kubectl-1.23.1

其中:

        kubelet:是K8s集群中每个node节点上的管家,用来处理Master节点下发到本节点的任务,管理Pod和其中的容器;

        kubeadm:用来初始化K8s集群;

        kubectl:K8s的命令行工具,通过kubectl可以部署和管理应用,查看各种资源、创建、删除和更新各种组件;

二、上传K8s离线镜像包并用docker解压

        上传k8s集群需要的离线镜像包:

       https://pan.baidu.com/s/1trMXXKqea1vy-oHdc7BGEw?pwd=3yiv

        解压镜像包:

docker load -i k8s-images-v1.23.1.tar.gz

 解压以后会多余一下镜像

三、kubeadm初始化k8s集群

kubeadm init --kubernetes-version=1.23.1  --apiserver-advertise-address=192.168.136.130 --image-repository registry.aliyuncs.com/google_containers  --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=SystemVerificatio

可能出现的问题

kubeadm init 出现failed with error: Get “http://localhost:10248/healthz“:

kubectl get nodes报错:Unable to connect to the server: x509: certificate signed by unknown authority .

四、 成功以后创建配置文件

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 

查看K8s集群的节点: 

查看节点上的pods: 

kubectl get pods --all-namespaces

 六、添加K8s从节点

 kubeadm token create --print-join-command

使用该命令可以输出加入k8s从节点的命令

kubeadm join 192.168.136.130:6443 --token r9fdhv.5vv3kdmqshycl6j5 --discovery-token-ca-cert-hash sha256:db12d8705ee7074d81f0281f8b40c1ec9603e59006a7e6570480286899d99eed 

再查看节点:

         此时集群状态还是NotReady状态,因为没有安装网络插件,所以我们下一步就是安装网络插件;

 七、安装Calico网络插件

 上传calico.yaml文件:

https://pan.baidu.com/s/1R0Bw5hvP5X6mA9ImpO3L1w?pwd=mgah

 kubectl apply -f  calico.yaml

执行以后pods状态变为Ready: 

 八、验证集群是否可用

我的从节点上传了busybos压缩包,并解压为镜像:

 master中运行busybos镜像可以ping通百度:

 以及可以看到我们coreDNS的clusterIP为10.96.0.10:


        我是chililopp,正在学习k8s,之后如果有新的总结或者体验也会发出来,如果有说的不对的地方,还请指点,十分感谢阅读!

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐