K8S master部署

本文介绍了如何使用Docker在Harbor进行登录、拉取镜像、打标签,并将镜像推送到Kubernetes集群中的过程,包括`docker login`、`docker pull`、`docker tag`和`docker push`操作,以及Kubernetes中Dockerfile的使用和应用部署。

服务器A:
[root@awx developer]# docker login -u admin -p harbor12345  harbor-image.developer.me
[root@awx developer]# docker pull harbor-image.developer.me/library/centos-openjdk-11:centos7.2.1511-200604
centos7.2.1511-200604: Pulling from library/centos-openjdk-11
[root@awx developer]# docker tag harbor-image.developer.me/library/centos-openjdk-11:centos7.2.1511-200604 harbor.domain/newsystem/centos-openjdk-11:centos7.2.1511-200604
[root@awx developer]# docker login -u admin -p Harbor12345 harbor.domain
[root@awx developer]# docker push harbor.domain/newsystem/centos-openjdk-11:centos7.2.1511-200604

k8sMASTER:
[root@master-a mkImages]# vim Dockerfile 
[root@master-a mkImages]# docker build -t harbor.domain/newsystem/account-service:20210901 .
Sending build context to Docker daemon  128.1MB
Step 1/3 : FROM  harbor.domain/newsystem/centos-openjdk-11:centos7.2.1511-200604
centos7.2.1511-200604: Pulling from newsystem/centos-openjdk-11
a8c7037c15e9: Pull complete 
5fcceed0427d: Pull complete 
9d7a58301250: Pull complete 
3f9e49115839: Pull complete 
Digest: sha256:3c52cfc4dadb9db7f1b03966563727d7b0087949274c15dc8466b6d11dbd0c9f
Status: Downloaded newer image for harbor.domain/newsystem/centos-openjdk-11:centos7.2.1511-200604
 ---> 3d365131aee4
Step 2/3 : ADD ./account-service.jar /opt/service/account-service.jar
 ---> 2b0c915cebfb
Step 3/3 : ENTRYPOINT ["java", "-jar", "/opt/service/account-service.jar"]
 ---> Running in 3f73f255ccfd
Removing intermediate container 3f73f255ccfd
 ---> 16e4d4c38784
Successfully built 16e4d4c38784
Successfully tagged harbor.domain/newsystem/account-service:20210901
[root@master-a mkImages]# docker login -u admin -p Harbor12345 harbor.domain
[root@master-a mkImages]# docker push harbor.domain/newsystem/account-service:20210901
The push refers to repository [harbor.domain/newsystem/account-service]
[root@master-a mkImages]# cd /root/spring-boot-yaml/deployment/200817-1152
[root@master-a 200817-1152]# vim account-service.yaml
[root@master-a 200817-1152]# kubectl delete -f account-service.yaml 
deployment.apps "account-service" deleted
service "account-service" deleted
[root@master-a 200817-1152]# kubectl apply -f account-service.yaml 
deployment.apps/account-service created
service/account-service created

<think>嗯,用户想了解如何部署Kubernetesmaster节点,对吧。首先,我得回忆一下自己之前学过的k8s部署流程。记得Kubernetes集群的部署通常使用kubeadm工具,这个工具可以简化很多步骤。用户可能已经看过一些教程,但需要更具体的步骤和配置文件说明。 根据引用里的内容,用户提到了初始化控制平面节点和加入Worker节点,所以重点应该放在kubeadm init的步骤上。引用1里提到部署flannel网络组件,这部分在初始化master节点后需要处理,所以应该包括在步骤里。另外,引用2里提到了kubeadm的功能和准备工作,比如操作系统要求、硬件配置,这些在部署前必须满足。 首先,我需要整理部署前的准备工作。用户可能需要知道软硬件要求,比如操作系统是Ubuntu还是CentOS,至少2GB内存,2核CPU。网络方面需要节点互通,并且关闭防火墙和交换分区。还有安装Docker、kubeadm等组件,这部分需要具体的命令,比如使用apt-get安装。 然后是初始化master节点的步骤。需要生成kubeadm的配置文件,比如kubeadm-config.yaml,里面要指定API服务器地址、Pod网段,还有control-plane的配置。运行kubeadm init命令时,要指定这个配置文件,并且处理可能出现的镜像拉取问题,比如使用阿里云的镜像源。初始化完成后,用户需要按照提示设置kubeconfig文件,这样才能使用kubectl命令。 接下来是部署CNI网络插件,比如Flannel。引用1里提到了上传kube-flannel.yml文件并应用,可能需要修改其中的网络参数。用户需要等待一段时间让Pod变成Ready状态,然后检查节点状态。这部分要详细说明,因为网络组件是集群正常工作的关键。 另外,用户可能关心配置文件的内容,比如kubeadm-config.yaml里的各个参数,如localAPIEndpoint的advertiseAddress,networking的podSubnet。还有Flannel的配置文件中的Network字段是否与kubeadm配置一致,避免网络冲突。 最后,应该提醒用户注意常见问题,比如镜像拉取失败,这时候可能需要更换镜像源或者手动拉取。还有节点NotReady的情况,需要检查CNI插件是否正确安装。另外,kubeadm init失败时要查看日志,可能需要重置集群再重新初始化。 用户的问题可能还涉及后续步骤,比如如何加入worker节点,但当前问题集中在master节点的部署,所以需要集中在master的配置和初始化。确保步骤清晰,每个命令都正确,并且配置文件有详细注释,这样用户能一步步跟着操作。</think>### Kubernetes Master节点部署步骤详解 根据引用[1][2]的部署实践,以下是Kubernetes Master节点的部署流程: #### 一、部署前准备(所有节点执行) 1. **系统要求** - 操作系统:Ubuntu 18.04+/CentOS 7+ - 内存≥2GB,CPU≥2核 - 禁用交换分区:`swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab` - 关闭防火墙:`systemctl stop firewalld && systemctl disable firewalld` 2. **安装依赖组件** ```bash # 安装Docker curl -fsSL https://get.docker.com | bash -s docker systemctl enable docker && systemctl start docker # 安装kubeadm/kubelet/kubectl cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=0 EOF yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0 systemctl enable kubelet ``` #### 二、Master节点初始化 1. **生成初始化配置文件** ```bash cat > kubeadm-config.yaml <<EOF apiVersion: kubeadm.k8s.io/v1beta3 kind: InitConfiguration localAPIEndpoint: advertiseAddress: 192.168.1.100 # 替换为实际IP bindPort: 6443 nodeRegistration: criSocket: unix:///var/run/dockershim.sock --- apiVersion: kubeadm.k8s.io/v1beta3 kind: ClusterConfiguration kubernetesVersion: 1.23.0 controlPlaneEndpoint: "192.168.1.100:6443" networking: podSubnet: "10.244.0.0/16" # 必须与CNI插件匹配 imageRepository: registry.aliyuncs.com/google_containers # 国内镜像源 EOF ``` 2. **执行初始化命令** ```bash kubeadm init --config=kubeadm-config.yaml --upload-certs ``` 初始化成功后显示: ``` Your Kubernetes control-plane has initialized successfully! To start using your cluster, you need to run the following as a regular user: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` #### 三、部署CNI网络插件(以Flannel为例) 1. **应用Flannel配置** ```bash wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml sed -i 's|"Network": "10.244.0.0/16"|"Network": "10.244.0.0/16"|' kube-flannel.yml # 确认网络参数 kubectl apply -f kube-flannel.yml ``` 2. **验证部署状态** ```bash kubectl get pods -n kube-system kubectl get nodes ``` 正常状态显示: ``` NAME STATUS ROLES AGE VERSION master01 Ready control-plane 5m v1.23.0 ``` #### 四、关键配置文件说明 1. **kubeadm-config.yaml** ```yaml apiServer: certSANs: - "master01.yourdomain.com" # 需要证书包含的域名 controllerManager: {} scheduler: {} ``` 2. **Flannel网络配置片段** ```yaml net-conf.json: | { "Network": "10.244.0.0/16", "Backend": { "Type": "vxlan" } } ``` #### 五、注意事项 1. 镜像拉取失败时,可手动拉取镜像: ```bash docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.23.0 ``` 2. 若节点状态长时间NotReady,检查CNI插件日志: ```bash journalctl -u kubelet -f ``` 3. 重置部署使用: ```bash kubeadm reset -f && rm -rf /etc/cni/net.d/ ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值