반응형

OS: Ubuntu 22.04.3 (VM)
Hypervisor: Oracle VM VirtualBox

 

2024년 1월 1일 기준, 쿠버네티스(Kubernetes)를 클린 설치한 우분투(Ubuntu 22.04.3)에 설치하기 위해 먼저 구글의 퍼블릭 키를 받았는데, 이것을 사용했더니 쿠버네티스와 관련된 패키지 목록 업데이트를 진행하지 못한다.

쿠버네티스 공식 설치 가이드를 따라했는데, 쿠버네티스 관련 저장소는 퍼블릭 키가 available하지 않아서 서명되지 않았기 때문에 패키지 목록을 갱신할 수 없다고 나온다.

 

※ 에러 메시지:

skylit@skylit-ubuntu22:/etc/apt/keyrings$ sudo apt update
Hit:1 https://download.docker.com/linux/ubuntu jammy InRelease
Hit:3 http://kr.archive.ubuntu.com/ubuntu jammy InRelease                                                  
Hit:4 http://security.ubuntu.com/ubuntu jammy-security InRelease                                 
Hit:5 http://kr.archive.ubuntu.com/ubuntu jammy-updates InRelease   
Get:2 https://packages.cloud.google.com/apt kubernetes-xenial InRelease [8,993 B]
Err:2 https://packages.cloud.google.com/apt kubernetes-xenial InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B53DC80D13EDEF05
Hit:6 http://kr.archive.ubuntu.com/ubuntu jammy-backports InRelease
Reading package lists... Done
W: GPG error: https://packages.cloud.google.com/apt kubernetes-xenial InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B53DC80D13EDEF05
E: The repository 'https://apt.kubernetes.io kubernetes-xenial InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

 

*해결 방법(24년 1월 1일 기준):

아래 링크에 나온 workaround를 참고하여, 퍼블릭 키 주소를  https://dl.k8s.io/apt/doc/apt-key.gpg 로 변경하여 해결했다.

https://github.com/kubernetes/k8s.io/pull/4837#issuecomment-1446426585

 

Temporarily host apt-key.gpg as original url is failing by dims · Pull Request #4837 · kubernetes/k8s.io

NOTE: Once this lands folks will be able to use https://dl.k8s.io/apt/doc/apt-key.gpg instead of the google url. A cached version of a gpg key is used from the way back machine, dated 2023-02-23 he...

github.com

 

반응형
블로그 이미지

Bryan_

,
반응형

세상이 너무 빨리 변한다.

딥러닝을 필두로 하는 인공지능이 사람만큼 (아니 어쩌면 사람보다 더 뛰어나게) 특정 인물의 얼굴을 인식한다. 개와 고양이를 겨우 분류할 수 있게 된 것이 그리 오래 전 뉴스가 아닌데, 이제는 실시간 영상에서 미리 알고 있는 물체(자동차, 동식물, 인공 구조물 따위)를 인식할 수 있다. 물론 아직은 실시간 영상에서 인식하는 정확도가 아주 높지는 않지만, 고화질 비디오에서 화면에 보이는 모든 것을 평균 95%의 정확도로 인식해 내는 것은 시간 문제이다.

강화학습은 우리의 일상에 꽤 많이 침투해 있다. 스마트폰만 살펴 봐도 내가 눈치채지 못하는 사이에 결정과 행동을 학습하고, 다음 번에 스마트폰 화면을 켰을 때에는 적절한 화면 밝기와 진동 모드, 잠금화면 해제 여부 등을 나에게 먼저 추천해 주는 건방진(?) 수준에 이르렀다.

생산적 적대 신경망(Generative Adversarial Network; GAN)은 특정 화가의 화풍을 따라하면서 새로운 그림을 창조하고, 세상에 없는 음악을 만들어 내기도 하며, 특정 사람의 학습된 얼굴을 바탕으로 가짜 비디오까지 만들어 내는(deepfake) 수준이 되었다. 그로 인해 유명인의 가짜 영상을 만드는 등 벌써부터 폐해가 생겨나고 있다.
글 생성 쪽으로 집중한 GPT-2 [1]는 아무 주제나 영어 문장으로 던져 주면, A4 용지 두어장 분량의 글을 의외로 그럴 듯하게 작성해 낸다. OpenAI에서 800만여 개의 웹사이트를 학습한 결과물인 Lite version (...)만 공개하고, 그보다 더 큰 버전은 딥페이크와 마찬가지로 사회적인 폐해가 심할 것이라고 판단해서 비공개로 결정했다고 한다. "오픈"이라는 단어가 이름에 들어가 있는 단체에서 위험성 때문에 일부러 공개를 안 하는 것이 어이가 없지만, lite version이 생성해 내는 샘플만 읽어 봐도 생각보다 전문적인 느낌이 드는 문장과 그럴 듯한 흐름에 묘한 기분을 느끼게 된다. 물론 문장 간의 연결이 아직까지는 이상하고, 같은 맥락의 말을 여러 번 반복하는 등 궤변으로 보이지만, 이것이 lite version의 성능이고 정식 버전은 훨씬 더 강력할 것이다. 즉, AI가 그럴 듯한 가짜 글을 써서 사람을 설득시켜서 말도 안되는 결정을 내리게 하는 상황도 언젠가는 일어날 수 있는 일이 된 것이다.


현재는 인공지능 기술이 특정한 분야와 특정한 목적에 맞추어 개발되고 있고, 인공일반지능(Artificial General Intelligence; AGI)은 아직 없다. 그러나 각 분야에서 인공지능 기술이 보여 주는 놀라운 성능을 볼 때, 시간이 걸리겠지만 언젠가 만들어질 수도 있는 AGI가 인류에게 주는 사회적 영향력에 대해서는 최대한 보수적으로 바라봐야 하지 않을까?

오늘날과 같은 자유로운 사회에서 AGI를 개발하고자 하는 방향 자체를 막는 것은 불가능하고, 이미 시간적으로도 늦은 것 같다. 일각에서는(빌 게이츠, 일론 머스크 등) AGI가 지구상에 엄청난 재앙을 안겨다 줄 것이라고 경고하고, 다른 쪽에서는(레이 커즈와일 등) 아예 우리가 신인류로 업그레이드 되는 유토피아를 상상하는 엄청난 낙관론을 주장다.

AGI가 어느 쪽으로 가던지 결국 그 방향을 최대한 올바른 방향으로 두고서 인류를 보호/보존하기 위한 노력은 세계적인 차원에서 계속될 것이다 (UN 같은 단체를 통한 개입이 필요할 것이다). 그보다 나는 AGI와 같은 존재가 보편적인 인간의 지성과 물리적 능력을 모두 뛰어넘게 되었을 때, 그리고 그 존재가 기계적으로 대량 생산이 가능할 때, 인류의 진정한 존재 목적과 의미는 무엇인지 묻고 싶다.

 

딥러닝, 강화학습, GAN 등의 근간이 되는 인공 신경망은 인간의 뇌 구조의 일부를 모방한 것이다. 거꾸로 생각해서 인간이 일상 생활 속에서 외부 자극을 받아들이고 신경 세포에 기억을 해 두고, 잠을 자면서 뇌의 활동을 통해서 신경 세포 간에 새로운 연결을 만들거나, 기존 연결을 강화시키거나 거꾸로 약화시키는 등의 작업을 거치고, 또다른 일상 생활 속에서 자신의 뇌를 사용하여 직관, 창의성 등을 발휘하며 살아 간다.

아직까지는 한 사람의 뇌를 인공 신경망으로 만들기에는 용량이 지나치게 커서 불가능한 것이 (딥러닝 기준에서 노드 수와 hidden layer 수가 현존하는 슈퍼컴퓨터 용량을 아득하게 뛰어넘는) 다행이지만, 인간의 뇌 속에서 뉴런을 통한 신경 물질의 전달 속도에 비해 압도적으로 빠른 컴퓨터의 신호 전달 속도는 어쨌든 저용량의 AGI라고 하더라도 산업적으로 상당히 뛰어난 생산성을 보일 것이다. 생산 활동을 하지 않는 인간 개인의 입장에서, 자신의 존재 목적과 의미를 찾지 못한다면, 좀더 멀리 보자면 더 나은 미래를 향한 희망을 상실한다면, 그리고 그런 인간이 매우 많다면?

내 생각에는 마지막으로 남는 것은 진부하게 들리겠지사랑일 지도 모르겠다. 서로 상호작용하고, 사랑하면서 기쁨을 느끼는 것. 인풋에 대해 특정 아웃풋을 극대화하기 위해서 내리는 판단이 아닌, 말 그대로 사랑하기 때문에 utility function의 결과값에 전혀 상관 없이 내리는 모든 결정만큼은 인공지능이 학습할 수 없기를 바란다.


[1] https://openai.com/blog/better-language-models/


반응형

'IT' 카테고리의 다른 글

Networks / 3-way handshaking  (0) 2007.10.17
블로그 이미지

Bryan_

,
반응형

OS: Ubuntu 16.04 (amd64)

Docker version: 17.09.1-ce


도커(Docker)가 활발하게 개발이 진행되고 버전이 자주 바뀌면서 엔진 부분의 기능이 너무 급격하게 바뀌는 것 때문에, 연구를 목적으로 예전의 특정한 버전을 사용해야만 할 때가 있다. 리눅스(예: 우분투)에서 패키지 관리자로 설치하면 비록 완전한 최신 버전은 아니지만 그렇다고 특정한 버전을 골라서 설치할 수도 없기 때문에, 도커 홈페이지에서 예전 버전의 바이너리 형태의 배포판을 찾아서 직접 실행하는 방식으로 사용해야 한다.


가장 먼저, 시스템에 이미 도커가 설치되어 있다면 리눅스(우분투)에서 기본 제공하는 도커 관련 패키지 모두 삭제한다.

$ sudo apt purge docker.io
$ sudo apt autoremove

(autoremove를 하면 docker.io 때문에 설치된 일부 dependency가 자동으로 제거됨)



아래 링크에 가서 원하는 도커 버전을 다운로드 받는다:
https://download.docker.com/linux/static/stable/x86_64/ 


터미널에서 다운로드 받은 위치에 가서 압축을 푼다.

$ tar xvzf docker-17.xx.x-ce.tgz



압축을 풀면 ./docker/ 폴더 아래에 바이너리 실행 파일들이 있음. 이것을 터미널에서 바로 실행 가능한 곳 어딘가에 복사한다. 보통은 PATH 환경변수에서 기본적으로 등록되어 있는 /usr/bin/ 또는 /usr/local/bin 이런 곳이 적당하다.

$ sudo cp docker/* /usr/bin/



터미널 하나를 새로 열고, 데몬을 미리 종료되지 않는 형태로 실행시켜 둔다.

터미널을 끄지 않고 내버려 두거나, 백그라운드에서 실행이 되도록 해 둔다.

$ sudo dockerd --experimental

또는

$ sudo dockerd --experimental &

(screen 같은 도구를 쓰는 것도 백그라운드에서 꺼지지 않게 하는 좋은 방법이 될 수 있다.)


이제 새 터미널에서, 도커 버전이 특정한 예전 버전으로 바뀌었는지 확인해 보고, 원래 하려던 docker 관련 작업(docker run, docker start, docker checkpoint 등)을 진행하면 된다.

$ docker -v



반응형
블로그 이미지

Bryan_

,
반응형

OS: Ubuntu 16.04.4 (amd64)


우분투에서 XRDP 서비스를 켜 두고, 윈도우 노트북에서 원격 접속을 하다 보면, 가끔 알 수 없는 문제로 인해 XRDP 서비스가 다운되고 (즉, crash) 이후로는 서비스 재시작이 안 돼서 원격 데스크탑을 쓰지 못하는 경우가 가끔 있다.

보통은 서비스 재시작 ($ sudo service xrdp restart)을 통해 문제가 해결되어야 한다. 하지만 만약 서비스 재시작이 계속 안 된다면, 기존에 실행 중이던 XRDP 서비스가 예기치 않게 죽으면서 자신이 여전히 살아있는 것처럼 정보를 남겨 둬서 그럴 가능성이 높다.

즉, 이미 죽어버린 프로세스의 PID 정보가 살아있는 것처럼 관련 정보 파일이 남겨지면서 (아마 정상적으로 종료가 되었다면 그런 PID 정보 파일들을 삭제를 했을 텐데 crash 되면서 PID 정보를 삭제를 못한 것), 새로 시작되는 XRDP 프로세스는 이미 다른 XRDP 서비스가 실행 중인 것으로 간주, listen을 하지 않고 멈추는 것으로 예상된다.


문제를 해결하려면, XRDP 서비스들과 관련해서 파일로 남겨진 PID 정보를 삭제하고 서비스를 시작한다.


<해결 방법>

1. /var/run/xrdp 디렉토리에서 XRDP 관련 서비스들의 process ID를 확인한다.

$ cat /var/run/xrdp/xrdp-sesman.pid
$ cat /var/run/xrdp/xrdp.pid 


2. 위에서 출력된 숫자(프로세스 ID)를 사용하여 프로세스를 kill한다.

$ sudo kill -9 [PID]


3. /var/run/xrdp/ 디렉토리 내의 .pid 파일 2개를 모두 삭제한다.

$ sudo rm /var/run/xrdp/*.pid 


4. XRDP 서비스를 재시작한다.

$ sudo systemctl enable xrdp.service    <-- 이건 안 해도 되는 것 같기도 하다.

$ sudo service xrdp restart


위와 같이 작업한 후에 XRDP에서 설정한 포트 번호가 Listen 상태로 뜨면 정상 작동하는 것이다.
XRDP에서 포트 번호를 따로 변경해 주지 않았다면 기본적으로 listen하는 포트 번호는 3389이다.

$ netstat -nap | grep 3389

tcp        0      0 0.0.0.0:3389           0.0.0.0:*               LISTEN      18357/xrdp



반응형
블로그 이미지

Bryan_

,
반응형

*기준 운영체제: 윈도우 10 (64비트)

공공기관, 금융기관 등의 사이트에 방문하고 나서 윈도우 10의 백그라운드에 쓸데없이 상주하는 플러그인 앱들이 꽤 많은데, 그 중에 자주 보이는 것들을 메모해 두고자 한다.


AhnLab Safe Transaction

  • 설정에서 특정 웹서비스 실행 시에만 실행되도록 변경 가능.
  • 일단 실행 중인 상태가 되면 지속적으로 CPU 1%~3% 가량을 소비함.
  • 다른 플러그인에 비해 설치 시간이 꽤 오래 걸리므로, 매번 재설치하기 귀찮으면 설정 변경으로 중지시켜 두는 것도 방법임.


Image SAFER 5.0 Injection Starter for x64

Image SAFER 5.0 Injection Starter for x86(32비트)

Image SAFER 5.0 Session Managing Service for x64

  • 현재 앱 및 기능에서 삭제할 수 없음. 뭐 이런 민폐가?
  • 실행파일 직접 삭제하는 방법: http://playwares.com/gametalk/54981942
  • 작업 관리자에서 프로세스를 종료시켜서 끌 수는 있음.


iniLine CrossEX Service

  • 요즘 들어 제일 짜증나는 프로세스임. 아무 것도 안 하는데도 지속적으로 CPU를 1% 가량 소비함.


nProtect Online Security V1.0(PFS)

  • 설정을 변경해서 윈도우 시작 시 자동실행은 안 되게 할 수 있음.
  • 일단 실행 중인 상태가 되면 지속적으로 CPU 2%~5% 가량을 소비함.
  • 개인 기준으로 전기 소비가 얼마 안돼 보이지만 전 국민의 PC에 다 깔려서 직접 필요하지 않는데도 CPU 전력의 2%를 쓴다고 상상해 보면...
  • 다른 플러그인에 비해 설치 시간이 꽤 오래 걸리므로, 매번 새로 설치하기 귀찮으면 설정을 변경해서 중지시켜 두는 것도 방법임.
  • 설정 변경 시, nProtect가 필요한 웹사이트에 방문하기 전에 사용자가 nProtect 앱을 수동으로 실행해 줘야 함. (예를 들면 아파트 청약 사이트 apt2you.com )


Rexpert30 Print Service 1,0,x,x - xx (2018년 8월 21일 기준 1,0,0,14 - 01)

  • io.js: Server-side JavaScript(32비트)
  • RexpertPrintService 응용 프로그램(32비트)
  • 클립소프트 렉스퍼트 3.0 EXE 스타트업(32비트)
  • 윈도우 작업 관리자에서 위의 3개의 프로세스로 존재하는데, 사용자의 작업에 큰 영향을 끼치지는 않고 메모리도 적게 차지하는 편임.
  • 그래도 보기에 거슬리면 설정 - 앱 및 기능에서 Rexpert30 Print Service를 제거할 경우, 위의 3개 프로세스가 모두 사라진다.


TouchEn firewall32

TouchEn key with E2E for 32bit

TouchEn nxKey with E2E for 32bit

  • 최근 TouchEn에서는 윈도우 시작 시 자동 실행시키는 프로세스는 없어 보임.
  • 일부 사이트에서는 크롬 브라우저의 플러그인으로 개발된 TouchEn을 쓰는 등 종류가 다양해서 윈도우에서 자동 실행되지 않는 경우가 있는 듯.
  • 그러나 크롬 플러그인으로 TouchEn이 있는 경우에는 평소에 TouchEn 플러그인을 필요로 하는 사이트에 가지 않는 이상 중지시켜 놓는 게 도움이 된다. (크롬이 켜져 있는 동안 쓸데없이 CPU, 메모리를 소비함)

TouchEn nxWeb_32

  • TouchEn 관련된 앱들 중에서 백그라운드에 상주하는 프로세스가 이놈인 듯.
  • 작업 관리자에서 보면 TouchEn nxWeb 프로세스 3개, TouchEn nxWeb Policy 프로세스 2개까지 총 5개의 프로세스가 켜지고, 이들 중 4개의 프로세스가 각각 0.5%의 CPU를 지속적으로 사용한다. 결국 도합 2%를 아무 이유 없이 소비한다.
  • 더 악질인 것은, 안랩, nProtect와 더불어 작업 관리자에서 강제 종료를 시킬 수가 없다는 점이다. 강제 종료하면 다시 살아난다. -_-


Veraport Handler 또는 그 외 Veraport로 시작하는 앱들

  • 작업관리자에서 veraport handler, wizvera process manager 등의 프로세스로 존재함.
  • CPU와 메모리를 많이 차지하지는 않는데 거슬리면 설정 - 앱 및 기능에서 위의 이름들을 찾아서 삭제.


VOICEYE Maker for ReportViewer v3.4.x.x


XecureWeb UnifiedPlugin

  • 윈도우 시작이나 백그라운드 실행에 큰 영향을 끼치지는 않음.


이 외에도 여럿 있지만 당장 눈에 보이고 생각나는 것들부터 기록하였다.

향후 영향력이 큰(?) 플러그인과 백그라운드 프로세스가 보이면 업데이트 해야겠다.


반응형
블로그 이미지

Bryan_

,