k8s-简单集群部署安装
文章目录
- 设置centos1的IP
- kube-proxy开启ipvs的前置条件
- 安装 Docker 软件
- 安装 Kubeadm (主从配置)
- 初始化主节点
- 查看错误日志:
- kubelet重启
- 子节点load k8s 镜像脚本
- 手动下载k8s镜像
1、安装 k8s 的节点必须是大于 1 核心的 CPU
2、安装节点的网络信息 192.168.66.0/24 10 20 21 100
3、koolshare 软路由的默认密码是 koolshare
设置centos1的IP
IPADDR=192.168.66.20 NETMASK=255.255.255.0 GATEWAY=192.168.66.1 DNS1=192.168.66.1 DNS2=114.114.114.114
kube-proxy开启ipvs的前置条件
modprobe br_netfilter cat > /etc/sysconfig/modules/ipvs.modules <<EOF #!/bin/bash modprobe -- ip_vs modprobe -- ip_vs_rr modprobe -- ip_vs_wrr modprobe -- ip_vs_sh modprobe -- nf_conntrack_ipv4 EOF chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
安装 Docker 软件
yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum update -y && yum install -y docker-ce ## 创建 /etc/docker 目录 mkdir /etc/docker # 配置 daemon. cat > /etc/docker/daemon.json <<EOF { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" } } EOF mkdir -p /etc/systemd/system/docker.service.d # 重启docker服务 systemctl daemon-reload && systemctl restart docker && systemctl enable docker
安装 Kubeadm (主从配置)
cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=0 repo_gpgcheck=0 gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF yum -y install kubeadm-1.15.1 kubectl-1.15.1 kubelet-1.15.1 systemctl enable kubelet.service
初始化主节点
kubeadm config print init-defaults > kubeadm-config.yaml localAPIEndpoint: advertiseAddress: 192.168.66.10 kubernetesVersion: v1.15.1 networking: podSubnet: "10.244.0.0/16" serviceSubnet: 10.96.0.0/12 --- apiVersion: kubeproxy.config.k8s.io/v1alpha1 kind: KubeProxyConfiguration featureGates: SupportIPVSProxyMode: true mode: ipvs # 下面是初始化的命令 kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs | tee kubeadm-init.log #使用kubene 新版本kubernetesVersion: v1.18.0 需要用 --upload-certs kubeadm init --config=kubeadm-config.yaml --upload-certs | tee kubeadm-init.log 教程:https://jingyan.baidu.com/article/93f9803f73fa7de0e46f552b.html kubeadm init --config=kubeadm-config.yaml --upload-certs | tee kubeadm-init.log
注意:
用国内的云镜像进行下载k8s镜像
kube镜像库已在1.8版本后无效,需要改为配置文件中配置 imageRepository。为kubelet添加一个额外的参数,
这样kubelet就不会在启动pod的时候去墙外的k8s仓库拉取镜像了apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
advertiseAddress: “10.20.79.10”
networking:
podSubnet: “10.244.0.0/16”
kubernetesVersion: “v1.10.3”
imageRepository: “registry.cn-hangzhou.aliyuncs.com/google_containers”
查看错误日志:
journalctl -xefu kubelet journalctl -f -u kubelet
kubelet重启
systemctl restart kubelet.service
子节点load k8s 镜像脚本
#!/bin/bash ls /root/kubeadm-basic.images > /tmp/image-list.txt cd /root/kubeadm-basic.images for i in $( cat /tmp/image-list.txt ) do docker load -i $i done echo "docker load k8s镜像完成----"
手动下载k8s镜像
拉取镜像: docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.18.0 docker pull registry.aliyuncs.com/google_containers/kube-proxy:v1.18.0 docker pull registry.aliyuncs.com/google_containers/kube-controller-manager:v1.18.0 docker pull registry.aliyuncs.com/google_containers/kube-scheduler:v1.18.0 docker pull registry.aliyuncs.com/google_containers/etcd:3.4.3-0 docker pull registry.aliyuncs.com/google_containers/coredns:1.6.7 docker pull registry.aliyuncs.com/google_containers/pause:3.2 修改tag docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.18.0 k8s.gcr.io/kube-apiserver:v1.18.0 docker tag registry.aliyuncs.com/google_containers/kube-proxy:v1.18.0 k8s.gcr.io/kube-proxy docker tag registry.aliyuncs.com/google_containers/kube-controller-manager:v1.18.0 k8s.gcr.io/kube-controller-manager:v1.18.0 docker tag registry.aliyuncs.com/google_containers/kube-scheduler:v1.18.0 k8s.gcr.io/kube-scheduler:v1.18.0 docker tag registry.aliyuncs.com/google_containers/etcd:3.4.3-0 k8s.gcr.io/etcd:3.4.3-0 docker tag registry.aliyuncs.com/google_containers/coredns:1.6.7 k8s.gcr.io/coredns:1.6.7 docker tag registry.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2
加入主节点以及其余工作节点
执行安装日志中的加入命令即可 #在子几点这个时候要执行 kubeadm init 初始化的命令 kubeadm init #重置 kubeadm rest 一定要在master节点中复制 那个join指令到各个子节点执行 kubeadm join 192.168.66.10:6443 --token abcdef.0123456789abcdef \ --discovery-token-ca-cert-hash sha256:cc37bc29e9ee92c34983d2a32f3fce84f2d384a0c1e88a51875d67d8a1db22fc
部署网络:在master节点,join到主节点后,自动拥有flanner网络服务
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml 这一步如果卡住了, 可以把文件下载到本地 然后执行 kubectl apply -f kube-flannel.yml 执行查询flannel状态是否正常的命令: kubectl get pod -n kube-system #查看主节点是否正常 kubectl get node
#手动拉取镜像
docker pull quay-mirror.qiniu.com/coreos/flannel:v0.12.0-amd64
#更改为要求的tag
docker tag quay-mirror.qiniu.com/coreos/flannel:v0.12.0-amd64 quay.io/coreos/flannel:v0.12.0-amd64
遇到的问题:
1.在node节点,问题:error: open /var/lib/kubelet/config.yaml: no such file or directory
解决:关键文件缺失,多发生于没有做 kubeadm init就运行了systemctl start kubelet。 要先成功运行kubeadm init
2.[ERROR DirAvailable–etc-kubernetes-manifests]: /etc/kubernetes/manifests is not empty
[ERROR FileAvailable–etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists
[ERROR Port-10250]: Port 10250 is in use
[ERROR FileAvailable–etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists
解决:执行 kubeadm reset
- centos7 下google Kubernetes(k8s)集群安装部署
- Centos7安装部署Kubernetes(K8s)集群
- k8s集群之kubernetes-dashboard和kube-dns组件部署安装
- centos7 下google Kubernetes(k8s)集群安装部署
- Kubernetes1.91(K8s)安装部署过程(三)--创建高可用etcd集群
- Prometheus全方位监控K8S集群,部署太简单了!
- K8S学习003--使用kubeadm部署安装集群
- ceph集群简单安装部署(Ubuntu14环境)
- JStorm学习笔记-集群环境安装部署
- 基于centos7.3安装部署jewel版本ceph集群实战演练
- elasticsearch2.3安装以及集群部署
- Cloudera 5.7集群部署(二)--CM、CDH安装
- k8s部署安装
- Centos 安装部署redis集群 及 jedis连接集群遇到的问题
- 王高利:CentOS6.5下redis安装部署配置指南、常用命令、主从同步集群、redis-php学习资料整合详解
- Hive的简单介绍以及安装部署
- [置顶] Centos7.3Kubernetes集群安装部署