容器编排服务Kubernetes(一)

很好地一个Kubernetes教程,雅俗共赏。

https://kubernetes.io/zh/docs/tutorials/kubernetes-basics/

Kubernetes 帮助您确保这些容器化的应用程序在您想要的时间和地点运行,并帮助应用程序找到它们需要的资源和工具。 Kubernetes 是一个可用于生产的开源平台,根据 Google 容器集群方面积累的经验,以及来自社区的最佳实践而设计。

一、创建一个集群。

定义:Kubernetes 用于协调高度可用的计算机集群,这些计算机群集被连接作为单个单元工作。 Kubernetes 的抽象性允许您将容器化的应用程序部署到集群,而不必专门将其绑定到单个计算机。为了利用这种新的部署模型,应用程序需要以将它们与各个主机分离的方式打包: 它们需要被容器化。容器化应用程序比过去的部署模型更灵活和可用,其中应用程序直接安装到特定机器上,作为深入集成到主机中的软件包。 Kubernetes 在一个集群上以更有效的方式自动分发和调度容器应用程序。 Kubernetes 是一个 开源 平台,可满足生产环境的需要。

组成:

Kubernetes 集群由两种类型的资源组成:

  • 一个 Master 是集群的调度节点
  • Nodes 是应用程序实际运行的工作节点
节点 是 Kubernetes 集群中的工作机器,可以是物理机或虚拟机。 每个工作节点都有一个 Kubelet,它是管理 节点 并与 Kubernetes Master 节点进行通信的代理。节点 上还应具有处理容器操作的工作,例如 Docker 或 rkt。一个 Kubernetes 工作集群至少有三个节点。
 
启动互动教程。
---------------------------------------------------------------------实战篇--------------------------------------------------------------------------------------------------------------------------
各个节点分开安装步骤:https://blog.csdn.net/weixin_44455125/article/details/90702058
https://www.jianshu.com/p/e31fb1c469f7
https://blog.csdn.net/qq_35904833/article/details/78190257
--------------------------------------------------------------------------------------------------------------------
迄今为止看到的最详细的安装文档,打算按照这个文档来安装。
http://idc.wanyunshuju.com/K8S/583.html(主要参考文档)
 
一、已在电脑上安装好了Docker 18.09.2
1、需要确认能安装的K8S版本信息,(注意Kubernetes 1.13.4版本已经支持最新的Docker 18.09.3;)
     安装k8s(kubectl,kubelet,kubeadm,master与node都要装)
2、配置kubernetes仓库
3、使用命令下载rpm-package-key.gpg 这个包、wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
4、rpm --import rpm-package-key.gpg(不知道此命令要干嘛)
5、安装kubelet
             yum -y install kubelet kubeadm kubectl

 

6、环境变量配置。

[root@master ~]# vim /usr/lib/systemd/system/docker.service

手动添加两行:

手动添加一行
  Environment="HTTPS_PROXY=http://www.ik8s.io:10080"
  Environment="NO_PROXY=127.0.0.0/8,172.0.0.0/16"

 

 7、开始一系列命令行操作,

 

当输入docker info时,输出为:

 保证输出的都是1
[root@master ~]# cat /proc/sys/net/bridge/bridge-nf-call-ip6tables
1
[root@master ~]# cat /proc/sys/net/bridge/bridge-nf-call-iptables
1
 
[root@master ~]# rpm -ql kubelet
/etc/kubernetes/manifests  #清单目录
/etc/sysconfig/kubelet   #配置文件
/etc/systemd/system/kubelet.service  
/usr/bin/kubelet   #主程序

8、设置开机启动
[root@master ~]# systemctl enable kubelet

9、初始化

[root@master ~]# kubeadm init --kubernetes-version=v1.11.1 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 开始报错

 初始化这一步各种报错!!!!添加了以下几种步骤:

改错1:

[root@master ~]# vim /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"

改错2:禁用swap

 

执行 swapoff -a
无输出(这个命令无法永久禁用,永久禁用看下文,master与node都要禁用)

改错3:修改初始化命令中的版本号以及添加了--ignore-preflight-errors=Swap

[root@master ~]# kubeadm init --kubernetes-version=v1.16.2 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap

于是又报错:

 

 然后查询资料https://blog.csdn.net/h952520296/article/details/86981343,是因为无法FQ的原因,解决如下:

用命令行下载:

docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.16.2

docker pull mirrorgooglecontainers/kube-controller-amd64:v1.16.2(若显示找不到)用docker pull bluersw/kube-controller-manager:v1.16.2

docker pull mirrorgooglecontainers/kube-scheduler-amd64:v1.16.2(若显示找不到)用docker pull bluersw/kube-scheduler:v1.16.2

docker pull bluersw/kube-proxy:v1.16.2

docker pull bluersw/pause:3.1

docker pull bluersw/etcd:3.3.15-0

docker pull bluersw/coredns:1.6.2

 下载完以后,需要打标签,否则系统仍然无法识别。

docker tag bluersw/kube-apiserver:v1.16.2 k8s.gcr.io/kube-apiserver:v1.16.2

docker tag bluersw/kube-controller-manager:v1.16.2 k8s.gcr.io/kube-controller-manager:v1.16.2

docker tag bluersw/kube-scheduler:v1.16.2 k8s.gcr.io/kube-scheduler:v1.16.2

docker tag bluersw/kube-proxy:v1.16.2 k8s.gcr.io/kube-proxy:v1.16.2

docker tag bluersw/pause:3.1 k8s.gcr.io/pause:3.1

docker tag bluersw/etcd:3.3.15-0 k8s.gcr.io/etcd:3.3.15-0

docker tag bluersw/coredns:1.6.2 k8s.gcr.io/coredns:1.6.2

然后再次输入初始化命令:红色部分需要修改为自己的IP。

kubeadm init --kubernetes-version=v1.16.2 --apiserver-advertise-address=192.168.0.4 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.1.0.0/16

10、貌似安装成功了 ,输出以下界面:需要保存一条命令,作为后续添加工作结点用

kubeadm join 172.16.12.217:6443 --token ayykxh.fdsnw6dnai6k1rh1 \
    --discovery-token-ca-cert-hash sha256:bc39b2e7139f573d397c3c031680e76a22d28a916e928d30c83d8f4f8fda8d61

 

 

11、查看一下当前的安装信息

 

 

[root@master ~]# mkdir -p $HOME/.kube
[root@master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
 
12、检测组件运行是否正常
[root@master ~]# kubectl get cs

 

 

13、查看并验证节点信息是否成功
[root@master ~]# kubectl get nodes

 

 

 14、安装flannel,工作结点Node之间通信使用。(又报错!)

[root@master ~]# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

 

替换成以下两个命令后成功:

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

 

 

 

 

 

 

 

 

 

 

 

 



posted on 2019-10-29 16:27  毛无语666  阅读(546)  评论(0编辑  收藏  举报

导航