K8S入门------1、k8s 1.19.2安装

网友投稿 304 2022-10-26

K8S入门------1、k8s 1.19.2安装

环境:

主机名 IP 操作系统 docker k8s版本 备注
k8s-master 10.13.19.51 Centos 7.9 19.03.13 1.19.2 master节点
k8s-node01 10.13.19.52 Centos 7.9 19.03.13 1.19.2 node节点
k8s-node02 10.13.19.53 Centos 7.9 19.03.13 1.19.2 node节点

一、Docker安装

所有节点都需要安装docker

1.安装阿里云docker源

[root@centos7 ~]# wget -O /etc/yum.repos.d/docker-ce.repo

2.安装docker

2.1 docker安装版本查看

[root@centos7 ~]# yum list docker-ce --showduplicates | sort -r`

2.2 安装docker

[root@centos7 ~]# yum -y install docker-ce-19.03.13 bash-completion

3. 配置镜像加速器

3.1 配置daemon.json文件

[root@centos7 ~]# mkdir -p /etc/docker[root@centos7 ~]# sudo tee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["["native.cgroupdriver=systemd"]}EOF

重启服务

[root@centos7 ~]# systemctl daemon-reload[root@centos7 ~]# systemctl enable --now docker

加速器配置完成

二、k8s安装准备工作

安装Centos是已经禁用了防火墙和selinux并设置了阿里源。master和node节点都执行本部分操作。

1. 配置主机名

1.1 修改主机名

[root@centos7 ~]# hostnamectl set-hostname k8s-master[root@centos7 ~]# hostname k8s-master

退出重新登陆即可显示新设置的主机名k8s-master

1.2 修改hosts文件

[root@master ~]# cat >> /etc/hosts << EOF10.13.19.51 k8s-master10.13.19.52 k8s-node0110.13.19.53 k8s-node02EOF

2. 验证mac地址uuid

[root@master ~]# cat /sys/class/net/ens33/address[root@master ~]# cat /sys/class/dmi/id/product_uuid

保证各节点mac和uuid唯一

3. 禁用swap

3.1 临时禁用

[root@k8s-master ~]# swapoff -a

3.2 永久禁用

若需要重启后也生效,在禁用swap后还需修改配置文件/etc/fstab,注释swap

[root@k8s-master ~]# sed -i.bak '/swap/s/^/#/' /etc/fstab

4. 内核参数修改

[root@k8s-master ~]# cat < /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOF[root@k8s-master ~]# sysctl -p /etc/sysctl.d/k8s.conf

5. 设置kubernetes源

5.1 新增kubernetes源

[root@k8s-master ~]# cat > /etc/yum.repos.d/kubernetes.repo << EOF[kubernetes]name=Kubernetesbaseurl=更新缓存

[root@k8s-master ~]# yum clean all[root@k8s-master ~]# yum -y makecache

三、Master节点安装

1. 安装kubelet、kubeadm和kubectl

1.1 安装三个包

[root@k8s-master ~]# yum install -y kubelet-1.19.2 kubeadm-1.19.2 kubectl-1.19.2

1.2 安装包说明

kubelet 运行在集群所有节点上,用于启动Pod和容器等对象的工具kubeadm 用于初始化集群,启动集群的命令工具kubectl 用于和集群通信的命令行,通过kubectl可以部署和管理应用,查看各种资源,创建、删除和更新各种组件

1.3 启动kubelet

启动kubelet并设置开机启动

[root@k8s-master ~]# systemctl enable --now kubelet

1.4 kubelet命令补全

[root@k8s-master ~]# source /usr/share/bash-completion/bash_completion[root@k8s-master ~]# echo "source <(kubectl completion bash)" >> ~/.bash_profile[root@k8s-master ~]# source .bash_profile

2. 初始化Master

2.1 初始化

[root@master ~]# kubeadm init \--apiserver-advertise-address=10.13.19.51 \--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \--kubernetes-version v1.19.2 \--service-cidr=10.1.0.0/16 \--pod-network-cidr=10.244.0.0/16

apiserver-advertise-address指定master的interface,pod-network-cidr指定Pod网络的范围,这里使用flannel网络方案。

记录kubeadm join的输出,后面需要这个命令将各个节点加入集群中。

2.2 加载环境变量

[root@k8s-master ~]# echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile[root@k8s-master ~]# source .bash_profile mkdir -p $HOME/.kubecp -i /etc/kubernetes/admin.conf $HOME/.kube/configchown $(id -u):$(id -g) $HOME/.kube/config

2.3. 配置hosts

cat >> /etc/hosts << EOF151.101.108.133 raw.githubusercontent.comEOF

2.4.安装pod网络

[root@k8s-master ~]# wget ~]# kubectl apply -f kube-flannel.yml

四、Node节点安装

1. 安装kubelet、kubeadm和kubectl

同master节点

2. 下载镜像

同master节点

3. 加入集群

以下操作master上执行

3.1 查看令牌

[root@k8s-master ~]# kubeadm token listTOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPSj5eoyz.zu0x6su7wzh752b3 2019-06-04T17:40:41+08:00 authentication,signing The default bootstrap token generated by 'kubeadm init'. system:bootstrappers:kubeadm:default-node-token

发现之前初始化时的令牌已过期

3.2 生成新的令牌

[root@master ~]# kubeadm token create1zl3he.fxgz2pvxa3qkwxln

3.3 生成新的加密串

[root@master ~]# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | \openssl dgst -sha256 -hex | sed 's/^.* //'

3.4 node节点加入集群

在node节点上分别执行如下操作:

[root@node01 ~]# kubeadm join 10.13.19.51:6443 --token 1zl3he.fxgz2pvxa3qkwxln --discovery-token-ca-cert-hash sha256:5f656ae26b5e7d4641a979cbfdffeb7845cc5962bbfcd1d5435f00a25c02ea50

五、集群测试

1. 部署应用

1.1 命令方式

[root@master ~]# kubectl run --image=--replicas=3kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.deployment.apps/created

通过命令行方式部署apache服务

1.2 配置文件方式

cat >> nginx.yml << EOFapiVersion: apps/v1kind: Deploymentmetadata:name: nginxspec:replicas: 3template:metadata:labels:app: nginxspec:restartPolicy: Alwayscontainers: name: nginximage: nginx:latestEOF

[root@master ~]# kubectl apply -f nginx.yml deployment.apps/nginx created

通过配置文件方式部署nginx服务

2. 状态查看

2.1 查看节点状态

[root@k8s-master ~]# kubectl get nodesNAME STATUS ROLES AGE VERSIONmaster Ready master 1h v1.19.2node01 Ready 1h v1.19.2node02 Ready 1h v1.19.2

2.2 查看pod状态

[root@k8s-master ~]# kubectl get pod --all-namespaces

2.3 查看副本数

[root@master ~]# kubectl get deployments --all-namespaces [root@master ~]# kubectl get pod -o wide --all-namespaces

2.4 查看deployment详细信息

[root@master ~]# kubectl describe deployments

2.5 查看集群基本组件状态

[root@master ~]# kubectl get csNAME STATUS MESSAGE ERRORscheduler Healthy ok controller-manager Healthy ok etcd-0 Healthy {"health":"true"}

至此完成Centos7.9下k8s(v1.19.2)集群部署。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:腾讯开源消息中间件TubeMQ总体介绍分析
下一篇:ds1302是什么接口,DS1302时钟芯片接口分析详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~