容器云集群安装配置

来源:互联网 发布:mysql数据库安全方案 编辑:程序博客网 时间:2024/04/28 13:44


注意:这里使用的centos7.x,也必须是7以上,6不适用


1,将主机与IP地址写入hosts文件夹中,master与salve都需要
master etcd registry 是指向主节点IP地址 也就是说配置三项或者一项都可

2,关闭防火墙
systemctl disable firewalld.service
systemctl stop firewalld.service
3,部署etcd服务 k8s的的依赖

yum install etcd -y
编辑 /etc/etcd/etcd.conf 文件
sed -i 's/原字符串/新字符串/' /home/1.txt
关于etcd监听的2379或者4001端口,都行,官方建议2379
sed -i 's/ETCD_NAME=default/ETCD_NAME=主机名1/' /etc/etcd/etcd.conf
sed -i 's/ETCD_LISTEN_CLIENT_URLS="http:\/\/.*:2379"/ETCD_LISTEN_CLIENT_URLS="http:\/\/0.0.0.0:2379"/;s/ETCD_ADVERTISE_CLIENT_URLS="http:\/\/.*:2379"/ETCD_ADVERTISE_CLIENT_URLS="http:\/\/0.0.0.0:2379"/' /etc/etcd/etcd.conf
启动并验证状态
systemctl start etcd
etcdctl set testdir/testkey0 0
etcdctl get testdir/testkey0
etcdctl -C http://主机名1:2379 cluster-health
----member 8e9e05c52164694d is healthy: got healthy result from http://0.0.0.0:2379
cluster is healthy

3,安装master节点
3.1,Docker安装
配置镜像路径
cat > /etc/yum.repos.d/virt7-docker-common-release.repo << EOF
[virt7-docker-common-release]
name=virt7-docker-common-release
baseurl=http://cbs.centos.org/repos/virt7-docker-common-release/x86_64/os/
gpgcheck=0
EOF
链接网络
yum -y install --enablerepo=virt7-docker-common-release
配置registry镜像库,表示可以从节点上拉取镜像 即为registry节点
编辑/etc/sysconfig/docker文件
sed -i 's/OPTIONS=\x27--selinux-enabled --log-driver=journald --signature-verification=false.*\x27/OPTIONS=\x27--selinux-enabled --log-driver=journald --signature-verification=false --registry-mirror=https:\/\/wzmto2ol.mirror.aliyuncs.com --insecure-registry 主机名1:5000 --add-registry 主机名1:5000\x27/' /etc/sysconfig/docker

设置开机自启动并开启服务
chkconfig docker on
service docker start

3.2,安装kubernetes:
master节点需要运行Kubernets API Server,Kubernets Controller Manager,Kubernets Scheduler组件
配置Kubernets API Server
编辑/etc/kubernetes/apiserver
 sed -i 's/KUBE_API_ADDRESS="--insecure-bind-address=.*"/KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"/;s/KUBE_ETCD_SERVERS="--etcd-servers=http:\/\/.*:2379"/KUBE_ETCD_SERVERS="--etcd-servers=http:\/\/主机名1:2379"/' /etc/kubernetes/apiserver

 #去掉权限检查以免unable to create pods: No API token found for service account "default"
 sed -i 's/KUBE_ADMISSION_CONTROL=.*/KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota"/' /etc/kubernetes/apiserver

编辑 /etc/kubernetes/config
sed -i 's/KUBE_MASTER="--master=http:\/\/.*:8080"/KUBE_MASTER="--master=http:\/\/主机名1:8080"/' /etc/kubernetes/config

注意:主节点也要编辑 /etc/kubernetes/kubelet 不然启动的时候是 127.0.0.1 不是主节点的名称
sed -i 's/KUBELET_ADDRESS="--address=.*"/KUBELET_ADDRESS="--address=0.0.0.0"/;s/KUBELET_HOSTNAME="--hostname-override=.*"/KUBELET_HOSTNAME="--hostname-override=主机名1"/;s/KUBELET_API_SERVER="--api-servers=http:\/\/.*:8080"/KUBELET_API_SERVER="--api-servers=http:\/\/主机名1:8080"/;s/KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=.*"/KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=主机名1:5000\/pod-infrastructure"/;s/KUBELET_ARGS=.*/KUBELET_ARGS="--cluster-dns=10.254.10.2 --cluster-domain=hi --allow-privileged=true"/' /etc/kubernetes/kubelet


启动服务并设置开机自启动
systemctl enable kube-apiserver.service
systemctl start kube-apiserver.service
systemctl enable kube-controller-manager.service
systemctl start kube-controller-manager.service
systemctl enable kube-scheduler.service
systemctl start kube-scheduler.service

4,部署salve节点
4.1, 安装docker  注意注意:这里也要修改配置文件/etc/sysconfig/docker
4.2 ,安装kubernetes
4.3 ,配置并启动kubernetes
在salve节点上需要运行以下两个组件 Kubelet , Kubernets Proxy
4.3.1 /etc/kubernetes/config
sed -i 's/KUBE_MASTER="--master=http:\/\/.*:8080"/KUBE_MASTER="--master=http:\/\/主机名1:8080"/' /etc/kubernetes/config

编辑 /etc/kubernetes/kubelet
注意这里的主机名2为从节点的主机名  需更换,主机名1为master节点 ,第二主机名1为自身镜像资源库节点
  sed -i 's/KUBELET_ADDRESS="--address=.*"/KUBELET_ADDRESS="--address=0.0.0.0"/;s/KUBELET_HOSTNAME="--hostname-override=.*"/KUBELET_HOSTNAME="--hostname-override=主机名2"/;s/KUBELET_API_SERVER="--api-servers=http:\/\/.*:8080"/KUBELET_API_SERVER="--api-servers=http:\/\/主机名1:8080"/;s/KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=.*"/KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=主机名1:5000\/pod-infrastructure"/;s/KUBELET_ARGS=.*/KUBELET_ARGS="--cluster-dns=10.254.10.2 --cluster-domain=hi --allow-privileged=true"/' /etc/kubernetes/kubelet

 

启动服务并设置开机自启动
systemctl enable kubelet.service
systemctl start kubelet.service
systemctl enable kube-proxy.service
systemctl start kube-proxy.service

验证结果
[root@主机名1 ~]# kubectl -s http://主机名1:8080 get node
NAME      STATUS    AGE
主机名2   Ready     24s
主机名3   Ready     23s

[root@主机名1 ~]# kubectl get nodes
NAME      STATUS    AGE
主机名2   Ready     1m
主机名3   Ready     1m

5,创建覆盖网络--Flannel
Flannel一个网络管理工具,在master节点与slave节点中都需安装

yum install flannel
master、node上均编辑/etc/sysconfig/flanneld
这里的主机名1为etcd服务的节点的主机名
  sed -i 's/FLANNEL_ETCD_ENDPOINTS="http:\/\/.*:2379"/FLANNEL_ETCD_ENDPOINTS="http:\/\/主机名1:2379"/;s/FLANNEL_ETCD_PREFIX=".*"/FLANNEL_ETCD_PREFIX="\/kube-centos\/network"/' /etc/sysconfig/flanneld

在master节点中配置上文FLANNEL_ETCD_PREFIX对应文件/kube-centos/network的值
etcdctl mkdir /kube-centos/network
etcdctl mk /kube-centos/network/config "{ \"Network\": \"192.168.0.0/16\", \"SubnetLen\": 24, \"Backend\": { \"Type\": \"vxlan\" } }"

剩下就是部署kubernetes-dashboard.yaml, kube-dns_14了
原创粉丝点击