从零开始学kubenetes系列(3)安装和初始化k8s

本文完全上接之前我发布的文章从零开始学kubenetes系列(2),此系列是从零开始循序渐进的,如果之前的操作没有完成请参考之前的文章
从零开始学kubenetes系列(2)https://blog.csdn.net/qq_41819823/article/details/116568497?spm=1001.2014.3001.5501

以下(1)-(4)步骤三个节点都要操作
(1)安装wget

$ yum install wget -y

(2) 安装docker

$ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
$ yum -y install docker-ce-18.06.1.ce-3.el7
$ systemctl enable docker && systemctl start docker
$ docker --version

在这里插入图片描述
在这里插入图片描述

(3)添加阿里云yum软件源

首先添加仓库

$  cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF
$ 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
repo_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

(4) 指定版本安装k8s

$ yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
$ systemctl enable kubelet

在这里插入图片描述
(5)在master节点上进行初始化(仅master节点)

$ kubeadm init \
--apiserver-advertise-address=192.168.31.100 \
--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

这里要对每一行做一个解释
第一行表示本机IP地址,我之前配过master的IP地址为192.168.31.100
第二行表示使用国内阿里云镜像
第三行表示版本,版本一定要和之前装的相匹配
第四行表示service的IP,就写这个就行
第五行表示集群网络策略IP,如果之后要用flannel网络的话就要写我这个。

这一步初始化其实做了很多的事情,因为在k8s集群的master节点上要装很多的组件比如api server ,controller manager,scheduler,kube-proxy,pause网络栈,coredns,etcd等等,这一步就是从阿里云上拉取组件的镜像然后部署。
安装完毕显示如下
在这里插入图片描述
此时输入docker images可以看到已经通过docker拉取的组件
在这里插入图片描述

然后直接按照它的指示红框1,输入

  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 查看节点信息
还没加入节点时应该只有一个master
在这里插入图片描述

(6)node节点的加入(仅在node节点上运行)
把上面标红的框2中的命令!(不是下面的命令)复制下来在节点中执行,这就是节点加入集群的口令token,每24小时会发生变化,如果过期之后想要加入节点,可以在master上执行以下语句产生新的token。

kubeadm token create --print-join-command

在节点执行之后效果如下
在这里插入图片描述
然后再在master上运行kubectl get nodes 命令,应该如下截图
在这里插入图片描述
但现在仍然是notready 的状态
查看pods状态命令kubectl get pods --all-namespaces也有两个是pending,
在这里插入图片描述

这是因为集群内网络还没有通,所以下一步配置网络插件flannel。

(7)安装flannel 网络插件,网络不通的话多试几次。

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

然后等一会通过下面命令再查看pods 和nodes节点状态,应该都是running和ready的状态了

$ kubectl get pods -n kube-system
$ kubectl get nodes

在这里插入图片描述
(8)集群测试
然后集群的搭建已经完成了,我们来测试一下
k8s是一个容器化管理系统,因此是从网上下载镜像,然后在本地部署
我们去拉取一个nginx镜像,并开放外界访问IP端口来测试连通性

$ kubectl create deployment nginx --image=nginx
$ kubectl expose deployment nginx --port=80 --type=NodePort
$ kubectl get pod,svc

第一句话的意思是拉取并部署nginx作为一个pod
第二句话,正常来说pod只有集群内部的地址,外界不可访问,我们使其向外暴露一个80端口(Nodeport类型),使外界可以访问
第三句话可以查看nginx 的service的外界暴露端口号和运行情况,依此来测试。
运行结果如下
在这里插入图片描述
可见nginx的service向外暴露的端口为30857
所以我们通过浏览器访问 masterIP:30857
即可看到nginx界面(翻墙软件要关掉,否则会连不上)
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值