在这篇文章中,我们将为您详细介绍docker安装卸载Kubernetes安装的内容,并且讨论关于docker卸载重装的相关问题。此外,我们还会涉及一些关于CentOS7上安装Kubernetes集群部
在这篇文章中,我们将为您详细介绍docker 安装 卸载 Kubernetes 安装的内容,并且讨论关于docker卸载重装的相关问题。此外,我们还会涉及一些关于CentOS 7上安装Kubernetes集群部署Docker、CentOS上安装Kubernetes集群(二)安装Docker、docker for mac 安装 kubernetes、kubernetes dashboard、docker kubernetes dashboard安装部署详细介绍的知识,以帮助您更全面地了解这个主题。
本文目录一览:- docker 安装 卸载 Kubernetes 安装(docker卸载重装)
- CentOS 7上安装Kubernetes集群部署Docker
- CentOS上安装Kubernetes集群(二)安装Docker
- docker for mac 安装 kubernetes、kubernetes dashboard
- docker kubernetes dashboard安装部署详细介绍
docker 安装 卸载 Kubernetes 安装(docker卸载重装)
一般情况都会先学 docker,然后再学 Kubernetes。所有会先安装 docker,然后就是安装 Kubernetes。然后 Kubernetes 中包含了 docker。安装会报错
1.docker 安装
依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
docker 软件包
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装
yum install docker-ce
启动与停止
systemctl start docker
systemctl stop docker
systemctl enbale docker
查询安装情况
yum list installed | grep docker
containerd.io.x86_64 1.2.4-3.1.el7 @docker-ce-edge
docker-ce-cli.x86_64 1:18.09.3-3.el7 @docker-ce-edge
卸载
yum -y remove docker-ce-cli.x86_64
yum -y remove containerd.io.x86_64
删除镜像 / 容器等
rm -rf /var/lib/docker
rm -rf /var/run/docker
安装 kubernetes
yum install -y etcd kubernetes
CentOS 7上安装Kubernetes集群部署Docker
1.操作系统详情
需要三台主机,都最小化安装CentOS7.3,并update到最新
cat /etc/RedHat-release
CentOS Linux release 7.3.1611 (Core)
角色主机名IP
Master master192.168.1.14
node1 slave-1192.168.1.15
node2slave-2192.168.1.16
2.在每台主机上关闭firewalld改用iptables
输入以下命令,关闭firewalld
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
然后安装iptables并启用
yum install -y iptables-services #安装
systemctl start iptables.service #最后重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动
3.安装ntp服务
yum install -y ntp
systemctl start ntpd
systemctl enable ntpd
二、安装配置
注:kubernetes,etcd等已经进去centos epel源,可以直接yum安装(需要安装epel-release)
1.安装Kubernetes Master
使用以下命令安装kubernetes 和 etcd
# yum install -y kubernetes etcd
编辑/etc/etcd/etcd.conf 使etcd监听所有的ip地址,确保下列行没有注释,并修改为下面的值
vim /etc/etcd/etcd.conf
# [member]
ETCD_NAME=default
ETCD_data_dir="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_INITIAL_CLUSTER="default=http://192.168.1.14:2380"
#[cluster]
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.1.14:2379"
编辑Kubernetes API server的配置文件 /etc/kubernetes/apiserver,确保下列行没有被注释,并为下列的值
vim /etc/kubernetes/apiserver
###
# kubernetes system config
#
# The following values are used to configure the kube-apiserver
#
# The address on the local server to listen to.
KUBE_API_ADDRESS="--address=0.0.0.0"
# The port on the local server to listen on.
KUBE_API_PORT="--port=8080"
# Port minions listen on
KUBELET_PORT="--kubelet_port=10250"
# Comma separated list of nodes in the etcd cluster
KUBE_ETCD_SERVERS="--etcd_servers=http://192.168.1.14:2379"
# Address range to use for services
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
# default admission control policies
KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"
# Add your own!
KUBE_API_ARGS=""
启动etcd,kube-apiserver,kube-controller-manager and kube-scheduler服务,并设置开机自启
vim /script/kubenetes_service.sh
for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do
systemctl restart $SERVICES
systemctl enable $SERVICES
systemctl status $SERVICES
done
sh /script/kubenetes_service.sh
在etcd中定义flannel network的配置,这些配置会被flannel service下发到nodes:
etcdctl mk /centos.com/network/config '{"Network":"172.17.0.0/16"}'
添加iptables规则,允许相应的端口
iptables -I INPUT -p tcp --dport 2379 -j ACCEPT
iptables -I INPUT -p tcp --dport 10250 -j ACCEPT
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
iptables-save
或者写入iptables配置文件 /etc/sysconfig/iptables
查看节点信息(我们还没有配置节点信息,所以这里应该为空)
# kubectl get nodes
NAME LABELS STATUS
2. 安装Kubernetes Minions (Nodes)
注:下面这些步骤应该在minion1和minions2上执行(也可以添加更多的minions)
使用yum安装kubernetes 和 flannel
# yum install -y flannel kubernetes
为flannel service配置etcd服务器,编辑/etc/sysconfig/flanneld文件中的下列行以连接到master
# vim /etc/sysconfig/flanneld
FLANNEL_ETCD="http://192.168.1.14:2379" #改为etcd服务器的ip
FLANNEL_ETCD_PREFIX="/centos.com/network"
编辑/etc/kubernetes/config 中kubernetes的默认配置,确保KUBE_MASTER的值是连接到Kubernetes master API server:
# vim /etc/kubernetes/config
KUBE_MASTER="--master=http://192.168.1.14:8080"
编辑/etc/kubernetes/kubelet 如下行:
node1:
# vim /etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_PORT="--port=10250"
KUBELET_HOSTNAME="--hostname_override=192.168.1.15"
KUBELET_API_SERVER="--api_servers=http://192.168.1.14:8080"
KUBELET_ARGS=""
node2:
# vim /etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_PORT="--port=10250"
KUBELET_HOSTNAME="--hostname_override=192.168.1.16"
KUBELET_API_SERVER="--api_servers=http://192.168.1.14:8080"
KUBELET_ARGS=""
启动kube-proxy,kubelet,docker 和 flanneld services服务,并设置开机自启
for SERVICES in kube-proxy kubelet docker flanneld; do
systemctl restart $SERVICES
systemctl enable $SERVICES
systemctl status $SERVICES
done
在每个minion节点,你应当注意到你有两块新的网卡docker0 和 flannel0。你应该得到不同的ip地址范围在flannel0上,就像下面这样:
node1:
# ip a | grep flannel | grep inet
inet 172.17.29.0/16 scope global flannel0
node2:
# ip a | grep flannel | grep inet
inet 172.17.37.0/16 scope global flannel0
添加iptables规则:
iptables -I INPUT -p tcp --dport 2379 -j ACCEPT
iptables -I INPUT -p tcp --dport 10250 -j ACCEPT
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
现在登陆kubernetes master节点验证minions的节点状态:
# kubectl get nodes
NAME LABELS STATUS
192.168.1.15 kubernetes.io/hostname=192.168.1.15 Ready
192.168.1.16 kubernetes.io/hostname=192.168.1.16 Ready
至此,kubernetes集群已经配置并运行了,我们可以继续下面的步骤。
三、创建 Pods (Containers)
为了创建一个pod,我们需要在kubernetes master上面定义一个yaml 或者 json配置文件。然后使用kubectl命令创建pod
# mkdir -p /k8s/pods
# cd /k8s/pods/
# vim Nginx.yaml
在Nginx.yaml里面增加如下内容:
apiVersion: v1
kind: Pod
Metadata:
name: Nginx
labels:
app: Nginx
spec:
containers:
- name: Nginx
image: Nginx
ports:
- containerPort: 80
创建pod:
# kubectl create -f Nginx.yaml
此时有如下报错:
Error from server: error when creating "Nginx.yaml": Pod "Nginx" is forbidden: no API token found for service account default/default,retry after the token is automatically created and added to the service account
解决办法是编辑/etc/kubernetes/apiserver 去除 KUBE_ADMISSION_CONTROL中的SecurityContextDeny,ServiceAccount,并重启kube-apiserver.service服务:
#vim /etc/kubernetes/apiserver
KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,ResourceQuota"
#systemctl restart kube-apiserver.service
之后重新创建pod:
# kubectl create -f Nginx.yaml
pods/Nginx
查看pod:
# kubectl get pod Nginx
NAME READY STATUS RESTARTS AGE
Nginx 0/1 Image: Nginx is not ready on the node 0 34s
这里STATUS一直是这个,创建不成功,下面排错。通过查看pod的描述发现如下错误:
# kubectl describe pod Nginx
Wed,28 Oct 2015 10:25:30 +0800 Wed,28 Oct 2015 10:25:30 +0800 1 {kubelet 192.168.1.16} implicitly required container POD pulled Successfully pulled Pod container image "gcr.io/google_containers/pause:0.8.0"
Wed,28 Oct 2015 10:25:30 +0800 1 {kubelet 192.168.1.16} implicitly required container POD Failed Failed to create docker container with error: no such image
Wed,28 Oct 2015 10:25:30 +0800 1 {kubelet 192.168.1.16} FailedSync Error syncing pod,skipping: no such image
Wed,28 Oct 2015 10:27:30 +0800 Wed,28 Oct 2015 10:29:30 +0800 2 {kubelet 192.168.1.16} implicitly required container POD Failed Failed to pull image "gcr.io/google_containers/pause:0.8.0": image pull Failed for gcr.io/google_containers/pause:0.8.0,this may be because there are no credentials on this request. details: (API error (500): invalid registry endpoint "http://gcr.io/v0/". HTTPS attempt: unable to ping registry endpoint https://gcr.io/v0/
v2 ping attempt Failed with error: Get https://gcr.io/v2/: dial tcp 173.194.72.82:443: I/O timeout
这里可能会遇到pod状态一直处于Penning的问题,此时可以通过kubectl describe pods/pod-name来查看pod信息,如果没有出错信息,那么Minion一直处于下载镜像中,下载好之后pod即会成功启动。
从网上找到 pause:0.8.0 的镜像,然后再每个node上导入镜像:
请在境外docker服务器执行 docker pull 命令下载镜像
gcr.io/google_containers/pause:latestgcr.io/google_containers/pause:1.0gcr.io/google_containers/pause:0.8.0
再用导出镜像
docker save -o pause.tar gcr.io/google_containers/pausegzip pause.tar
最后把这个包放到 kubernetes 环境所有的 docker 服务器上
docker load -i pause.tar.gz
在执行以下命令即可成功创建pod
[root@master ~]#kubectl create -f Nginx.yamlpods/Nginx
查看pod
[root@master ~]# kubectl get pod NginxNAME READY STATUS RESTARTS AGENginx 1/1 Running 0 2min
前往nodes节点上查看docker images
[root@slave1 ~]# docker imagesREPOSITORY TAG
更多Docker相关教程见以下内容:
Docker安装应用(CentOS 6.5_x64)http://www.linuxidc.com/Linux/2014-07/104595.htm
Ubuntu14.04安装Dockerhttp://www.linuxidc.com/linux/2014-08/105656.htm
Ubuntu使用VNC运行基于Docker的桌面系统http://www.linuxidc.com/Linux/2015-08/121170.htm
阿里云CentOS 6.5 模板上安装 Dockerhttp://www.linuxidc.com/Linux/2014-11/109107.htm
Ubuntu 15.04下安装Dockerhttp://www.linuxidc.com/Linux/2015-07/120444.htm
在Ubuntu Trusty 14.04 (LTS) (64-bit)安装Dockerhttp://www.linuxidc.com/Linux/2014-10/108184.htm
在 Ubuntu 15.04 上如何安装Docker及基本用法http://www.linuxidc.com/Linux/2015-09/122885.htm
Ubuntu 16.04上Docker使用手记http://www.linuxidc.com/Linux/2016-12/138490.htm
Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/142676.htm
CentOS上安装Kubernetes集群(二)安装Docker
采用docker作为容器运行(目前业界主流与共识)
1. 必要的一些系统工具
# yum install -y yum-utils device-mapper-persistent-data lvm2
2. 添加docker源
# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
可以采用国内的镜像加速服务,参照kubernetes的官方文档,这里使用阿里的镜像在CentOS上的安装作为说明(作此笔记的时候尝试过华为、腾讯和电子科大的kubernetes好像版本没有阿里的新,就暂时先用阿里的来做实验了)。
3. 更新并安装 Docker-CE
在线环境安装
# yum makecache fast
# yum -y install docker-ce
此处根据默认是docker源文件的配置安装的是最新稳定版,但很有可能不能通过最新的kubernetes的认证。因此,我们采用下面的方式来选择安装版本,特别是再生产环境中。
1) 查找仓库中的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
Loading mirror speeds from cached hostfile
Loaded plugins: branch, fastestmirror, langpacks
...
dockdr-ce.x86_64 18.09.9.ce-1.el7.centos docker-ce-stable
...
docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
Available Packages
2) 安装指定版本的Docker-CE
VERSION 例如上面的 18.09.9.ce.1-1.el7.centos
# yum -y install docker-ce-18.09.9 docker-ce-cli-18.09.9
离线环境安装
如果是离线安装可以使用Everthing的哪个ISO进行依赖库的安装,但安装的docker版本比较老,不过问题也不大。当然也可以先在能够联网的主机上将需要的rpm打包下载,然后拷贝到离线环境中进行安装,关键过程如下:
1) 使用yum命令下载离线包
# yum install docker-ce-18.09.9 docker-ce-cli-19.09.9 --downloadonly --downloaddir=/home/<your_account>/
2) 在离线环境中安装(按照如下顺序进行安装)
安装基础的依赖包
# rpm -ivh checkpolicy-2.5-8.el7.x86_64.rpm
# rpm -ivh libcgroup-0.41-20.el7.x86_64.rpm
# rpm -ivh libseccomp-2.3.1-3.el7.x86_64.rpm
# rpm -ivh libsemanage-python-2.5-14.el7.x86_64.rpm
# rpm -ivh audit-libs-python-2.8.4-4.el7.x86_64.rpm
# rpm -ivh setools-libs-3.3.8-4.el7.x86_64.rpm
# rpm -ivh python-IPy-0.75-6.el7.noarch.rpm
# rpm -ivh policycoreutils-python-2.5-29.el7.x86_64.rpm
安装docker-ce的软件包
# rpm -ivh container-selinux-2.99-1.el7_6.noarch.rpm
# rpm -ivh containerd.io-1.2.6-3.3.el7.x86_64.rpm
# rpm -ivh docker-ce-cli-18.09.7-3.el7.x86_64.rpm
# rpm -ivh docker-ce-18.09.7-3.el7.x86_64.rpm
说明:
1.上述安装的软件包版本可能不一样,根据安装时的具体实际情况来,不必台纠结。
2.在挂载Eerything的ISO作为软件源的情况下,可以直接使用yum命令对拷贝到本地的container-selinux、containerd.io、docker-ce-cli、docker-ce的软件包,安装上述顺序进行安装。
ARM64架构下的安装
目前非x86_64的平台也多了起来,如华为的鲲鹏服务器,而且某些地方也有用武之地,这里以ARM64架构为例(之后的非x86_64架构也是)进行说明。
ARM64裸机
如果有一台ARM64的裸机,那么就直接安装对应版本的CentOS执行上面的命令即可。
ARM64模拟器
没有ARM64的裸机,可以使用模拟器来代替,反正主要是下载包。再次感谢Linux的好处:),本人现在的主机就是安装的Fedora的发行版,如果要模拟ARM64,只需安装相应的架构包可以,如下:
sudo dnf install qemu-system-aarch64
该命令可以自行解决包依赖问题,然后在使用Virtual Machine Manager这个程序创建虚拟机的时候,高级选项中就会多出aarch64,即ARM64的架构,选择并点击下一步,之后执行后续的安装步骤根新建amd64架构的就一样了。除此外,还可以使用qemu-system-XXX来安装模拟其它架构的虚拟机,有点激动,呵呵呵。
4. Docker其它设置
创建目录/etc/docker
# mkdir /etc/docker
创建daemon.json
# cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
EOF
创建服务目录(官方文档,还不知道干什么用)
# mkdir -p /etc/systemd/system/docker.service.d
修改服务器启动文件
修改docker服务文件(/usr/lib/systemd/system/docker.service),docker的iptables的FORWARD默认策略为DROP,可能会影响集群通信,需要修改原有的docker.service文件,在"ExecStart=/usr/bin/docker"之后新增一行:
ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT
开启Docker服务
# systemctl daemon-reload
# systemctl start docker
# systemctl enable docker
docker for mac 安装 kubernetes、kubernetes dashboard
-
安装参考地址(按照此文档,安装成功):https://yq.aliyun.com/articles/508460
-
官方说明:https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/
-
常用命令 kubectl 命令:
kubectl get namespaces
kubectl get pods --namespace kube-system
kubectl get deployments --namespace kube-system
kubectl get services --namespace kube-system
kubectl -n kube-system edit service kubernetes-dashboard
kubectl get pods
kubectl get deployments
kubectl get services
kubectl config view
获取令牌,然后登陆 kubernetes dashboard
➜ ~ kubectl get secrets
NAME TYPE DATA AGE
default-token-6ljm8 kubernetes.io/service-account-token 3 6h
➜ ~ kubectl describe secrets default-token-6ljm8
Name: default-token-6ljm8
Namespace: default
Labels: <none>
Annotations: kubernetes.io/service-account.name=default
kubernetes.io/service-account.uid=77d014c2-0804-11e9-acd8-025000000001
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1025 bytes
namespace: 7 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImRlZmF1bHQtdG9rZW4tNmxqbTgiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGVmYXVsdCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6Ijc3ZDAxNGMyLTA4MDQtMTFlOS1hY2Q4LTAyNTAwMDAwMDAwMSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpkZWZhdWx0OmRlZmF1bHQifQ.G9TGa4KGj5B-cMv-0-vuangR2_tFiQ1nJMgtsEPs1BEwPAyjmaC-BL5y0Ux9HyC1mlt0DklO-8_o41i4OD_w0wLymxi8zZQxgY7Tlu3_oE5OKnK58xWN-mMTKKnvfDpZrIBbkWQ5EB49LC7QiTBKGAoixGyOBvU1fmD2AzpdO3sWvNsaOWbMLFcwzHA-M2V-CKU3I07Hxs6uIi9juk4IqkTryfvCDUafTrubpkVktwQr7UwzvmKfbPoWLyn1tbCDhR3Il64daoTE9nlmqWwYZZFmfaZjWWWYfi3QPXuNUNpXRVVd_6gcjUzebR1o-22KoOUbobQ94K-1bYJOQSZNnA
将 token 部分复制到登录页的 token 输入框,登陆即可。 出处:http://www.cnblogs.com/along21/p/9811860.html#auto_id_11
docker kubernetes dashboard安装部署详细介绍
docker之kubernetes dashboard部署
1. 环境说明:
1). 架构:
注: 本次实验服务器环境均采用centos 7. 服务安装均采用yum install.
192.168.3.7 master
192.168.3.16 node
2).使用的软件包:
master: docker kubernetes-master etcd flannel
nodes: docker kubernetes-node flannel
3). 软件版本:
docker: 1.10.3
kubernetes*: 1.2.0
etcd: 2.3.7
4). 软件包说明:
docker: 主角,不用说了
kubernetes-master: kubernetes 服务端
kubernetes-node: kubernetes 客户端
etcd: 服务器发现的键值存储
flannel: 打通多台服务器上的docker容器之间的网络互通
2. 环境初始化:
你都搞docker了,初始化该做些什么,我就不教你了.
备份现有的yum源文件,搞一个阿里云的yum源,epel源.
地址: http://mirrors.aliyun.com
3. 安装配置docker:
注: docker采用net模式. 确保device-mapper软件包已经安装,否则docker无法启动.
1). 安装 # yum install docker -y 2). 配置 # cat /etc/sysconfig/docker|egrep -v "^#|^$" OPTIONS='' DOCKER_CERT_PATH=/etc/docker
4. 配置master
1). 安装软件包. # yum install kubernetes-master etcd flannel-y 2). 配置etcd. # cat /etc/etcd/etcd.conf |egrep -v "^#|^$" ETCD_NAME=default ETCD_data_dir="/var/lib/etcd/default.etcd" ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" ## 监听地址端口 ETCD_ADVERTISE_CLIENT_URLS="http://192.168.3.7:2379" ## etcd集群配置;多个etcd服务器,直接在后面加url
##启动etcd服务
# systemctl start etcd
3). 配置kubernetes.
在/etc/kubernetes 目录中有以下几个文件:
apiserver: kubernetes api 配置文件
config: kubernetes 主配置文件
controller-manager: kubernetes 集群管理配置文件
scheduler: kubernetes scheduler配置文件
# cd /etc/kubernetes KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0" ## kube启动时绑定的地址 KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.3.7:2379" ## kube调用etcd的url KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=172.17.0.0/16" ## 此地址是docker容器的地址段 KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota" KUBE_API_ARGS="" 注意KUBE_ADMISSION_CONTROL这一行的配置: 移除ServiceAccount 项目,否则在后期中会报出没有认证错误. # cat config |egrep -v "^#|^$" KUBE_LOGTOSTDERR="--logtostderr=true" KUBE_LOG_LEVEL="--v=0" KUBE_ALLOW_PRIV="--allow-privileged=false" KUBE_MASTER="--master=http://192.168.3.7:8080" ## kube master api url
controller-manager scheduler 两个文件采用默认配置即可.
5. 配置nodes
1). 安装软件包.
# yum install kubernetes-node flannel -y
2). 配置kubernetes node
安装完软件包之后,会在/etc/kubernetes目录下出现以下文件:
config: kubernetes 主配置文件
kubelet: kubelet node配置文件
proxy: kubernetes proxy 配置文件
# cd /etc/kubernetes # cat config |egrep -v "^#|^$" KUBE_LOGTOSTDERR="--logtostderr=true" KUBE_LOG_LEVEL="--v=0" KUBE_ALLOW_PRIV="--allow-privileged=false" KUBE_MASTER="--master=http://192.168.3.7:8080" ## kube master api url # cat kubelet |egrep -v "^#|^$" KUBELET_ADDRESS="--address=0.0.0.0" ## kubelet 启动后绑定的地址 KUBELET_PORT="--port=10250" ## kubelet 端口 KUBELET_HOSTNAME="--hostname-override=192.168.3.16" ##kubelet的hostname,在master执行kubectl get nodes显示的名字 KUBELET_API_SERVER="--api-servers=http://192.168.3.7:8080" ## kube master api url KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest" KUBELET_ARGS=""
proxy 配置默认即可.
6. 网络配置:
master和node均已经安装flannel
master配置:
# cat /etc/sysconfig/flanneld |egrep -v "^#|^$" FLANNEL_ETCD="http://192.168.3.7:2379" FLANNEL_ETCD_KEY="/kube/network" # etcdctl mk /kube/network/config '{"Network":"172.17.0.0/16"}' ## 注意此处的ip和上文中出现的ip地址保持一致.
node配置:
# cat /etc/sysconfig/flanneld |egrep -v "^#|^$" FLANNEL_ETCD="http://192.168.3.7:2379" FLANNEL_ETCD_KEY="/kube/network"
7. 启动服务.
1). 启动docker服务.
# systemctl start docker
# ps aux|grep docker ## 确认下服务是否正常启动.如果没有启动请移步/var/log/message看问题
2). 启动etcd服务
# systemctl start etcd
3). 启动master 和node上的flanneld服务
# systemctl start flanneld
查看ip,会出现flannel0的网络接口设备,该地址和docker0地址是一致的,如果不一致请确认以上服务是否正常启动
4). 启动运行在master上的k8s服务.
启动顺序:kube-apiserver居首.
# systemctl start kube-apiserver
# systemctl start kube-controller-manager
# systemctl start kube-scheduler
请确认以上服务是否都有正常启动.
5). 启动运行在node上的k8s服务.
# systemctl start kube-proxy
# systemctl start kubelet
请确认以上服务是否都有正常启动.
6). 访问http://kube-apiserver:port
http://192.168.3.7:8080 查看所有请求url
http://192.168.3.7:8080/healthz/ping 查看健康状况
8. 开启k8s dashboard:
1). 在master上验证服务. # kubectl get nodes ## 获取k8s客户端. NAME STATUS AGE 192.168.3.16 Ready 6h # kubectl get namespace ## 获取k8s所有命名空间 NAME STATUS AGE default Active 17h 2). 在master上新建kube-system的namespace # cd /usr/local/src/docker # cat kube-namespace.yaml { "kind": "Namespace","apiVersion": "v1","Metadata": { "name": "kube-system" } } # kubectl create -f kube-namespace.yaml namespace "kube-system" created # kubectl get namespace ## 获取k8s所有命名空间 NAME STATUS AGE default Active 17h kube-system Active 17h
3). 在master上新建kube-dashboard.yaml
wget http://docs.minunix.com/docker/kubernetes-dashboard.yaml -O /usr/local/src/docker/kube-dashboard.yaml
请将文件中apiserver-host修改为自己的kebu-apiserver
创建pod:
# kubectl create -f kube-dashboard.yaml
deployment "kubernetes-dashboard" created
You have exposed your service on an external port on all nodes in your
cluster. If you want to expose this service to the external internet,you may
need to set up firewall rules for the service port(s) (tcp:31576) to serve traffic.
See http://releases.k8s.io/release-1.2/docs/user-guide/services-firewalls.md for more details.
service "kubernetes-dashboard" created
验证:
# kubectl get pods --namespace=kube-system
NAME READY STATUS RESTARTS AGE
kubernetes-dashboard-3138400848-grtfm 1/1 ContainerCreating 0 27s
查看该容器的详细过程:
# kubectl describe pods kubernetes-dashboard-3138400848-grtfm --namespace=kube-system
当有多个node,可以用该命令中看到容器被分配到哪个node上,启动后分配的ip地址等信息.
如果在结果中看到"State: Running"时,请移步到node查看容器运行状态,应该也是up的状态.
4). 此时可以通过http://kube-apiserver:port/ui访问
http://192.168.3.7:8080/ui
开始尽情使用docker吧!
9. 注意点&遇到的问题:
1). 注意服务的启动顺序,特别是master,在确保etcd启动的情况下,先启动apiserver
2). 注意yaml文件的格式缩进.
3). 如果发现刚创建的pod的status是depening,原因可能有几点:其一,客户端配置有listen 127.0.0.1的服务,master无法与其建立连接;其二,环境初始化没有做好;其三,移步node,使用docker logs 查看日志
4). kubernetes-dashboard.yaml文件中的containers images地址目前为公开的,09月30日会关闭.
5). 如果自己有国外vps,可在服务器上创建docker registry;先pull下google的k8s dashboard,然后push到自己的registry,自己修改下yaml中的image即可.
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:
- Docker实践―CentOS7上部署Kubernetes详解
- centos7搭建docker私人仓库的方法(kubernetes)
今天关于docker 安装 卸载 Kubernetes 安装和docker卸载重装的分享就到这里,希望大家有所收获,若想了解更多关于CentOS 7上安装Kubernetes集群部署Docker、CentOS上安装Kubernetes集群(二)安装Docker、docker for mac 安装 kubernetes、kubernetes dashboard、docker kubernetes dashboard安装部署详细介绍等相关知识,可以在本站进行查询。
本文标签: