k8s 集群版部署(必坑快速看到效果)

1.博主 三台centos7   (这三台虚拟机都 已经安装好了 docker)

注: 机器名称:IP

k8s-master:192.168.50.160

k8s-node1:192.168.50.161

k8s-node2:192.168.50.162

以下命令 三台主机都要执行一边。

关闭防火墙:
systemctl  stop firewalld
systemctl  disable firewalld

关闭se1inux:

sed -i 's/enforcing/disabled/' /etc/selinux/config

关闭swap:
vi /etc/fstab  #永久  在 /dev/mapper/centos-swap 前面添加一个 #号 注释掉就OK了

设置主机名  (注意这个名称 自己去切换哈,不要傻乎乎的 每台主机都写成 k8s-node1

hostnamectl set-hostname k8s-node1  

在 master添加 hosts

cat >> /etc/hosts << EOF
192.168.50.160 k8s-master
192.168.50.161 k8s-node1
192.168.50.162 k8s-node2
EOF

将桥接的IPv4流量传递到 iptables的链:

cat> /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system 

时间同步:

yum install ntpdate -y
ntpdate time.windows.com

安装 kubeadm、kubelet、kubectl:

cat >/etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF


yum clean all
yum makecache

yum install -y kubelet-1.19.0 kubeadm-1.19.0 kubectl-1.19.0
systemctl enable kubelet

------------------------------------------------------------------ 到此为止 结束,下面的命令 就要自己在 在分别的主机上执行

master节点上安装 : (注:只需要在 k8s-master:192.168.50.160 这台执行

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.19.16
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.19.16
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.19.16
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.19.16
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.9-1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.7.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.19.16  k8s.gcr.io/kube-apiserver:v1.19.16
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.19.16 k8s.gcr.io/kube-controller-manager:v1.19.16
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.19.16 k8s.gcr.io/kube-scheduler:v1.19.16
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.19.16 k8s.gcr.io/kube-proxy:v1.19.16
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.9-1 k8s.gcr.io/etcd:3.4.9-1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.7.0 k8s.gcr.io/coredns:1.7.0
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.19.16
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.19.16
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.19.16
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.19.16
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.9-1
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.7.0

kubeadm init \
--apiserver-advertise-address=192.168.50.160 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.19.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=all

注意:一定要主要看这个命令 执行的结果   因为下面都需要用到

或者执行一次

#加载环境变量
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source .bash_profile 
#安装pod网络
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

kubeadm token list
#生成新的令牌
kubeadm token create
#生成新的加密串
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | \
   openssl dgst -sha256 -hex | sed 's/^.* //'

根据 info日志信息 执行命令 例如
  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config  

自己再次执行一边。

现在可以看效果了:

kubectl get node

这里只能看到一台节点,因为  node节点的主机 还没有加入 到 master上 ,现在开始加入

node 接口加入 master 上 (注:只需要在 k8s-node1:192.168.50.161、k8s-node2:192.168.50.162 这俩台执行

  根据 master节点 info日志信息 执行命令 例如:    
  kubeadm join 192.168.50.160:6443 --token vmlcpy.gbt6kknrv1oljtiu \
    --discovery-token-ca-cert-hash sha256:23a106c2977824d1a965fcf52cf36648959f9fab70b80009d7c65b5649aaa19e 

上面的执行完了 在到 master节点上的主机执行 

kubectl get node

就能看到 三台节点了, 到了这一步 恭喜你 已经,建立的一个集群了。

查看 master kube 状态日志:
journalctl -u kubelet 
journalctl -u kubelet > A  #把日志写入到 A文件下,这样方便查看

但是 集群还没有运行起来,现在需要 解决 网络的问题,接下来在master节点上运行 (注:只需要在 k8s-master:192.168.50.160 这台执行

wget http://docs.projectcalico.org/v3.8/manifests/calico.yaml
    修改内容:vi calico.yaml  # 记得一定要修改 内容
    # - name: CALICO_IPV4POOL_CIDR
    #   value: "192.168.0.0/16"
    修改为
    - name: CALICO_IPV4POOL_CIDR
      value: "10.244.0.0/16"    # 这里一定要写  kubectl init 里面 添加的网关 基于上面写的 这里改成 10.244.0.0/16
    wq
    
    kubectl apply -f calico.yaml  #安装
    kubectl get pods -n kube-system #查看

安装 UI (注:只需要在 k8s-master:192.168.50.160 这台执行
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml

vi recommended.yaml

修改Service部分
-----------------------------------------------
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 31000
  selector:
    k8s-app: kubernetes-dashboard
  type: NodePort
 ----------------------------------------------

    kubectl apply -f recommended.yaml

  创建用户
  kubectl create serviceaccount dashboard-admin -n kube-system

  用户授权
  kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

  获取token
  kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')

  访问即可:https://192.168.50.160:31000/   (注意:因为证书的缘故:只能在  火狐浏览器,或者360 的浏览器访问,谷歌浏览器其他的浏览器暂时访问不了,解决完证书的问题就OK了!

到此位置,基本部署已经结束了。 接下来一起学把。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值