初探minikube

  1. dashboard
    使用一条简单命令,就可以启动dashboard服务,不过这个服务是构建在docker里的,所以在os里,使用systemctl 没法显示出来。

    如果要查看k8s管理的服务有哪些,可以使用如下命令
k8s@MDaliyun:~$ kubectl get namespaces

显示所有namespaces

将本地电脑的12345端口映射到远程服务器的对应端口(-L参数–本地,-R参数–远程),执行后需要输入k8s这个用户的密码.
这里需要解释一下:

  • 通用命令是:ssh -L 本地ip:本地端口:目的ip:目的端口 user@server_ip
  • 当源ip就是本机时,可以省略,如果需要绑定同一个局域网的另外一台机器时,就要把源ip写上,例如192.169.1.2.
  • 目的ip,是我们要映射的server的127.0.0.1,也就是localhost,当然,也可以是与映射server同一个局域网的其他机器,例如172.0.0.10,或者域名地址(需要私网域名解析)
  • 当然,这就带来一个非常大的好处,比如我们在远程服务器上,如果有一个docker服务需要暴露8080端口时,如果采用ssh映射方式,就不需要云服务器开通安全组了。
ssh -L 12345:localhost:12345  k8s@server_ip 

执行成功后,打开下面的链接,就可以使用本地浏览器管理dashboard了

http://127.0.0.1:12345/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/#/namespace?namespace=default

如果要暂停dashboard的服务,没有stop之类的命令,可以采用资源降级、删除对应namesapce、

k8s@MDaliyun:~$ kubectl scale deployment kubernetes-dashboard -n kubernetes-dashboard --replicas=0
deployment.apps/kubernetes-dashboard scaled

删除pod相关资源后,本地浏览器的dashboard呈现菊花状态

ssh隧道映射也就失效了

  1. http service

  2. 其他命令
    获取更详细的pod资料

k8s@MDaliyun:~$ kubectl describe pods -n kubernetes-dashboard
Name:             dashboard-metrics-scraper-5dd9cbfd69-tz9xq
Namespace:        kubernetes-dashboard
Priority:         0
Service Account:  kubernetes-dashboard
Node:             minikube/192.168.49.2
Start Time:       Wed, 30 Aug 2023 17:04:26 +0800

从minikube到portainer

下午原计划从b站的“三小时学会k8s”入手,没想掉入portainer的坑,还好一切顺利

portainer

portainer是一个非常轻量化的docker管理工具,图形化界面,支持ubuntu,安装过程如下

  1. 首先建立一个docker的专门目录 docker_project,进入目录
    mkdir portainer

  2. 在portainer目录下,建立一个docker compose可以使用的yml文件:
    nano docker-compose.yml
    文件内容如下,其中8083是宿主机的端口号,需要请云主机管理员帮你打开权限:

    version: '3'
    services:
      portainer:
        image: portainer/portainer-ce
        container_name: portainer
        ports:
          - "8083:9000"
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
          - portainer_data:/data
    volumes:
      portainer_data:
    
    
  3. 使用如下命令,上面的yml文件相当于定义了portainer service的启动配置,也就是使用‘portainer/portainer-ce’的镜像文件,并绑定到8083端口上(9000是容器的端口),而且创建了portainer data卷。使用docker-compose 命令启动portainer容器
    docker-compose up -d

  4. 好了,使用浏览器进入本地或者你的远程服务器地址:8083,就可以对服务器上的docker进行管理。

minikube

  1. 首先安装kubectl,这是一个用来管理k8s集群的命令行工具,对于管理部署、services、pods和其他资源非常关键,在ubuntu的默认包里是没有的,所以需要从k8s官方repo里下载最新版本。

    sudo apt install curl
    curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
    chmod +x kubectl
    sudo mv kubectl /usr/local/bin/
    
    

    上述命令下载最新kubectl后,修改其属性为可执行,然后把它移动到path目录以便可以从terminal里执行。
    然后对安装结果进行校验

    kubectl version --client
    

    下面是巨坑时刻,折腾了1个小时,因为dl.k8s.io在google上,总是下载失败,所以按照chatgpt建议打算替换如下国内镜像:

        https://dl.k8s.io
    
    curl -LO "https://mirrors.ustc.edu.cn/kubernetes/apt/dists/kubernetes-jessie/release/$(curl -L -s https://mirrors.ustc.edu.cn/kubernetes/apt/dists/kubernetes-jessie/release/stable.txt)/bin/linux/amd64/kubectl"
    
    curl -LO "https://mirrors.aliyun.com/kubernetes/$(curl -L -s https://mirrors.aliyun.com/kubernetes/stable.txt)/bin/linux/amd64/kubectl"
    
    KUBE_VERSION=$(curl -L -s https://mirrors.cloud.aliyuncs.com/kubernetes/stable.txt)
    curl -LO "https://mirrors.cloud.aliyuncs.com/kubernetes/${KUBE_VERSION}/bin/linux/amd64/kubectl"
    
    curl -L -s https://mirrors.cloud.aliyuncs.com/kubernetes/stable.txt
    
    https://mirrors.aliyun.com/kubernetes/
    https://mirrors.ustc.edu.cn/kubernetes/
    

    当然还是失败,最终多问了几次chatgpt,按照如下方式安装成功

    sudo apt update
    sudo apt install snapd
    

    Once you have snapd installed and the system restarted (if necessary), you can now install kubectl using snap:

    sudo snap install kubectl --classic
    kubectl version --client
    

    minikube start

    What you’ll need
    2 CPUs or more
    2GB of free memory
    20GB of free disk space
    Internet connection
    Container or virtual machine manager, such as: Docker, QEMU,    Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMware   Fusion/Workstation
    

    都是钱

    尽量不要使用root账号

    这时候要注意,如果从portainer后台启动minikube的容器,实际是没有运行起来的

    使用none root用户启动minikube

    成功!

    docker run -d -p 8081:80 docker/getting-started

参考
https://www.xtuos.com/214719.html
不使用用docker compose来安装portainer:https://www.jianshu.com/p/ce225a5bfbd1

在m1电脑上重新安装brew并更新系统

MacBook使用笔记:安装Homebrew(M1)(https://zhuanlan.zhihu.com/p/372576355)

作者 | 公众号:程序员的一天

一、Homebrew是什么?

Homebrew官网:

英文:
https://brew.sh
中文:
https://brew.sh/index_zh-cn
Homebrew是MacOS(或 Linux)的软件包管理器。

通过它,我们可以方便的对Mac上的各种应用软件进行管理,例如:安装、更新、查看、搜索、卸载等。

Homebrew,可谓是Mac神器,几乎每一位Mac使用者都会安装它。

用Homebrew官网的一句话总结:

Homebrew 使 macOS(或您的 Linux 系统)更完整。

二、Mac上安装Homebrew

Homebrew 3.0.0版开始,正式支持Apple M1芯片,M1用户放心安装!
第一步:

打开终端。不知道如何打开终端的朋友,请参考:

爱码士:MacBook使用笔记:打开终端
45 赞同 · 2 评论文章

第二步:

在终端命令行窗口输入安装命令。

这里需要特别说明几点内容。

下面是Homebrew官方给出的安装命令:(如果没有VPN,不要使用此命令安装!)

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
通常情况下,官网给出的指令会报错:

curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
因为这是国外网站,由于GFW(中国长城防火墙)的存在,如果没有vpn,是无法访问的,所以连接被拒绝!

别着急,有办法解决!

只要我们从国内镜像网站安装,就一切OK了。

以下为国内安装Homebrew的正确姿势:(基于gitee上某大神的自动安装脚本)

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
回车执行指令后,根据提示操作。具体包括以下提示操作:

(1)选择下载镜像

根据需要选择下载源,例如,我这里选择中科大下载源,就输入‘1’,回车。

(2)确认删除旧版本

如果存在旧版本,会弹出删除旧版本提示,输入"Y",回车。

(3)输入开机密码(用于mac确认第三方应用安装)

(4)安装git

如果之前没有安装过git,会终止homebrew安装,弹出git安装提示,点击“安装”。

(5)再次执行homebrew安装指令

耐心等待git安装完成后,再次运行homebrew安装指令,重新根据提示操作即可。

安装需要一段时间,过程中,可以在终端看到脚本执行了那些操作。

(6)验证是否安装成功

安装脚本执行完成后,重启终端。(重启后才生效)

通过在终端输入"brew -v",可以查看homebrew版本。

如果正确输出版本信息,表示成功安装。

虽然叫做’Homebrew’,但实际使用时,命令是’brew’。
qiuxiannv@qiuxiannvdeMBP ~ % brew -v
Homebrew 3.1.7-42-gd45832b
Homebrew/homebrew-core (git revision 09d1a8b385; last commit 2021-05-15)
Homebrew/homebrew-cask (git revision c1dad4a5cf; last commit 2021-05-15)
qiuxiannv@qiuxiannvdeMBP ~ %
在M1芯片上,homebrew的安装路径为:"/opt/Homebrew/"
三、Homebrew卸载

如需卸载,使用指令:

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"
如果有用,点个赞吧~

END
发布于 2021-05-16 01:16

隔壁同事离职留下的痕迹

隔壁同事昨天离职,我恰好去临港见客户,错过了他的last day,他留下了几本书要送给同事们。

刚刚发了微信,简单聊了几句,互相留下对未来的美好祝愿。

从去年9月(22年)开始,公司启动了持续裁员,从最初的n+2,到23年6月n+1,然后恢复到这波n+2。送走了一批又一批同事后,也在默默准备着自己的离开。

18年主动离开上一家公司时,没有索要任何赔偿,43岁的我还觉得精力充沛,这5年的经历也让自己受益良多,只不过不愿意再为其他人拼搏奋斗了。

总想着要好好利用剩下的50年,虽然不明确要做什么,但诚实待己、追寻真相,才是要遵循的原则。

要继续学习,把这个宇宙看的真真切切,才不枉此行

同事离职后的痕迹

石康的新浪微博

以下内容摘录自石康8月2日新浪微博,特别是他的最后一段话,“我的理由是每个人只有一生可过,错过某些重要的信息,就会错失某些本应属于你的人生”


声明:

多年以来,我一直喜欢把新浪微博当成我的草稿本,在上面随便写写画画,记下某种想法,以便以后整理后使用,以免丢失。
最近半年都在写一些与AI相关的事情,好笑的是,现在国产AI终于发力了,竟然令我无法把文章发在我真正的记录本——公众号上。
原因是公众号的AI根本没能力分清谁是原创,谁是摘抄者,明明是有人盗版、摘抄了我的文章,公众号的AI——包括各种管理员及客服,却认为我贴出的旧文与网上的“别的文章相似度过高”,从而不许我发表,我的申诉也被驳回,且只有一次申诉机会。
我现在只好静待腾讯的AI慢慢进步至能分辩出谁是原创谁是抄袭者了——没想到这一点对他们来讲居然是个挑战,可能他们需要雇几个贵一点的工程师了,国产工程师其实是抄袭与盗版的重灾区,这也是我一直为郭敬明辩护的原因,有这些工程师在,郭敬明差不多就算偷盗者的榜样,人家虽然不道歉,但赔偿,仅凭这一点,就让那些品质远比他恶劣的工程师追三代人的。

好了,没办法再使用新浪微博当草稿本了,我需要习惯于使用收费的公众号当我的新草稿本了。也许以后会把它发展成一个档案本,把我从前写的东西整理后慢慢贴上去,我并不认为它们在人类思想这一范围内有什么价值,无论是文学上,还是在戏剧上,或是在其它什么体裁上。
从我得到的回应来看,很清楚,需要这些信息人数极少——但并不是没有。

我的收费策略现在看来挺成功的。
它的主要目的是为了把那些与我发布的信息完全无关的人员赶走,他们至今仍不懂得信息的真正价值,所以不懂得为他们需要的信息付费,他们是被动地接收新浪推送的信息,以为是白来的信息最令他们快乐,为此不惜浪费他们宝贵的生命时间。
事实上,我觉得他们都搞砸了,并且以后仍会继续,因他们没有搞清一些人生在世最基本的东西,而且越是这样, 就越是没有机会去搞清。

对于他们,我认为最好的方式就是不在他们身上花时间。
因为有效的概率不是趋向于零,或是接近零,而就是零。
因为这些人已永远地失去了接受重要信息的能力。
这些信息对他们来讲是全新的,完全无法理解,就像他们完全无法理解数学描述一样——我一直认为这件事居然发生在2023年极为好笑。

我发现,我的发出的信息总是会从某些我完全无法预料的角度伤害他们,令他们反弹,回击我,还有一些感叹也令我觉得好笑,比如有一位叹道:“没用看了没用是真的,糊里糊涂的活着还舒服些。最怕什么都懂了,却逃不出去。”
脑子混乱至如此,就连你告诉他“只要懂得一点点,你当然就能逃出去”他也不会相信。这样的人的自我描述倒是挺准确的:“没用看了没用是真的,糊里糊涂的活着还舒服些。”
不过下面就暴露了智能有问题,我是说,不仅是对自己“什么都懂了”这一假设,还有在前面加上“最怕”,我真的认为大脑混乱如此的人看我发出的信息是一种错误,是我坚持认为”必须被纠正的错误“。

这些情况是信息严重不对称的结果。
更不是我的初衷。
我一再声明,我不想伤害任何人,只是想把我认为重要的信息送至那些需要它们的人手中。
我的理由是每个人只有一生可过,错过某些重要的信息,就会错失某些本应属于你的人生,这种情况就发生在我身上,因此我痛惜之余,才愤然提笔告知相关者。
那些人可以通过付费得到它们,从而令自己得益,同时避免无关者受到伤害或因此感到困扰。