220. 【kubernetes】二进制文件方式安装-Kubernetes-集群(四)

这是 kubernetes 系列继 187. 【kubernetes】二进制文件方式安装 Kubernetes 集群(三) 后的第 4 篇。

一、插曲

昨晚有个简友在简书平台发消息咨询他在搭建过程中出现的问题,

写文章有人就内容反馈还是一件蛮开心的事情。我直接在本地 VMware 上新建了三台虚拟机,照着自己的教程,重新搭了一个环境。最后查出来这位简友的问题是出在我写文章打字时把单词打错了,改完之后,kube-scheduler 就能启动了。

后来还一起把我自己遇到的一个认证问题解决了,也是把单词打错了,尽管千叮咛万嘱咐还是会出现这种低级的错误,但幸运的是最后发现了,这个确实应该引起重视。

非常欢迎就**“二进制方式 安装 kubernetes 环境”**问题与我讨论,共同进步。

二、当前进度(新的环境下,因此看到 ip 变了)

  • 查看集群内节点状态
    kubectl get nodes --kubeconfig=/etc/kubernetes/kubeconfig
    

基本已完成

可以看到基本已完成,这里说明一下,上述命令里 --kubeconfig=/etc/kubernetes/kubeconfig其实是可以省略的,不过前提是在环境变量中添加了 KUBECONFIG
添加 KUBECONFIG 环境变量

添加完成之后,执行 source ~/.bashrc即可。

另外,可以看到目前的 STATUS 还是显示的 NotReady,加下来就是添加 cni网络插件了。

  • 添加 CNI 网络插件

    kubectl apply -f "https://docs.projectcalico.org/manifests/calico.yaml"
    

    这是会发现还是处于 NotReady状态,这时就要再调查一下问题出在哪儿了,

    kubectl get all -n kube-system  
    

这里发现有一个 pod 处于 Init:0/3 状态,继续调查,

kubectl describe pod calico-node-2nqtk -n kube-system

好了,问题找到了,原来是有一个 Docker 镜像没有下载下来,继续,

docker pull registry.aliyuncs.com/google_containers/pause:3.6 
docker tag registry.aliyuncs.com/google_containers/pause:3.6 k8s.gcr.io/pause:3.6

命令在各个节点执行完之后,多等待一会,如下图所示。
验证已解决

三、阶段性胜利

至此,一个二进制文件方式安装的 Kubernetes 集群已经部署完成了,接下来就可以快乐的创建 Pod、Deployment、Service 等资源对象来部署、管理容器应用和微服务了。

四、小小的测试

准备一个 deploy.yaml 文件,内容如下,

apiVersion: apps/v1
kind: Deployment
metadata:
  name: qijing-mysql-base-deployment
  labels:
    name: qijing-mysql-base-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      name: qijing-mysql-base-pod
  template:
    metadata:
      labels:
        name: qijing-mysql-base-pod
    spec:
      nodeSelector:
        kubernetes.io/hostname: 192.168.199.31
      volumes:
        - name: localtime-mysql
          hostPath:
            path: /etc/localtime
      containers:
      - name: mysql
        image: mysql:8.0.19
        volumeMounts:
          - mountPath: /etc/localtime
            name: localtime-mysql
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "yourpassword"

---
apiVersion: v1
kind: Service
metadata:
  name: qijing-mysql-base-svc
  labels:
    name: qijing-mysql-base-svc
spec:
  type: NodePort
  ports:
    - port: 3306
      protocol: TCP
      targetPort: 3306
      name: http
      nodePort: 30307
  selector:
    name: qijing-mysql-base-pod

执行

kubectl create -f qijing-mysql-deploy.yaml  
kubectl get po
kubectl get svc

没问题
可以看到 Pod、Service、Deployment对象都创建成功了。

再使用 Navicat 连接一下 mysql试试
没问题


这就是程序员的乐趣的吧。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值